web-dev-qa-db-ja.com

Cypher Neo4jは外部リソースをロードできませんでした

Windows環境で、次のステートメントで.csvファイルをロードしようとしています。

LOAD CSV WITH HEADERS FROM "file:///E:/Neo4j/customers.csv" AS row

正しく機能していないようで、次のメッセージが返されます。外部リソースをロードできませんでした:

ファイル:/E:/Neo4j/Customers.csv Neo.TransientError.Statement.ExternalResourceFailure

何が悪いのですか?前もって感謝します

18
user13568

Mac OS X 10.10のCommunity Edition 3.0.1でこのエラーが発生しました。CSVをロードしているようですfile:///は、事前定義されたディレクトリでファイルを検索します。サイファーステートメントに完全なパスを与えるだろうという議論では、だれかが思うかもしれませんが、そうではありません。

file:///-私の状況の場合」は、neo4jが、事前に定義されている引数に指定した引数を追加し、その結合パスを探しますfile:///事前定義されたディレクトリdirectoryは完全には存在しませんでした/Users/User/Documents/Neo4j/default.graphdb/import、コンピュータのディレクトリ構造で、インストール時に作成されなかった「/ import」フォルダがありませんでした

私のシステムで修正するために、「インポート」ディレクトリを作成し、そのディレクトリに読み取るファイルを配置しました。サイファーロードステートメントを実行しました。読み取るファイルの名前のみをファイル引数に入れました。

LOAD CSV file:///data.csv

これは私のために働いた。

22
Richard Avila

セキュリティ構成のようです。これが私が見つけた元の答えです: https://stackoverflow.com/a/37444571/327004

これを回避するために、conf/neo4j.confに次の設定を追加できます。

dbms.security.allow_csv_import_from_file_urls=true

または、インポートディレクトリを変更しますdbms.directories.import=import

8
jackdbernier

あなたはファイルで答えを見つけることができます

"C:\Users\Jack\AppData\Roaming\Neo4j Community Edition\neo4j.conf"

( "dbms.directories.import = import"の上)

バージョンneo4j-community_windows-x64_3_1_1の場合は、この行をコメント化するか、\ importフォルダー(インストールでは作成されない)を作成して、ファイルをフォルダーに追加する必要があります。


セキュリティ上の理由により、\ Documents\Neo4j\default.graphdb\importフォルダーからのファイル読み込みのみが許可されていると書かれています

#dbms.directories.import = importでコメント化した後、実行できます。から

LOAD CSV FROM "file:///C:/Users/Jack/Documents/products.csv" AS row 

Neo4j.confでは、追加/設定する必要はありませんでした

dbms.security.allow_csv_import_from_file_urls=true
5
InLaw

(Arch)Linux + neo4j-community-3.4.0-alpha09の場合、$NEO4J_HOME/conf /neo4j.confを編集します。

  • コメント解除または追加:dbms.security.allow_csv_import_from_file_urls=true
  • コメント:#dbms.directories.import=import

Neo4jインターフェース/ GUIとしてWebブラウザーを使用している場合は、neo4j(ターミナル:neo4j restart)を再起動し、Neo4jブラウザー(http://localhost:7474/browser/)をリロードします。

次に、$NEO4J_HOME/...ディレクトリの外部からcsvをロードできるはずです。

例えば。、

LOAD CSV WITH HEADERS FROM "file:///mnt/Vancouver/Programming/data/metabolism/practice/a.csv" AS ...

ここで、私の$NEO4J_HOME//mnt/Vancouver/apps/neo4j/neo4j-community-3.4.0-alpha09/です

LOAD CSV WITH HEADERS FROM "file:/mnt/Vancouver/Programming/data/metabolism/practice/a.csv" AS ...

も機能しますが、機能しません

LOAD CSV WITH HEADERS FROM "file://mnt/Vancouver/Programming/data/metabolism/practice/a.csv" AS...

または

LOAD CSV WITH HEADERS FROM "/mnt/Vancouver/Programming/data/metabolism/practice/a.csv" AS...

つまり、...file:/...または...file:///...を使用します

4
Victoria Stuart

おそらくURLの問題です。file:c:/path/to/data.csvをお試しください

私のブログ投稿を参照してください:

2
Michael Hunger

Neo4jデスクトップで、使用しているデータベースを選択し、設定に移動すると、解決策が見つかります... "dbms.directories.import = import"行にコメントするだけです

#この設定は、すべてのLOAD CSVインポートファイルをimportディレクトリの下に制限します。削除またはコメントアウト

#ファイルシステムのどこからでもファイルをロードできるようにする;これにより、セキュリティ上の問題が発生する可能性があります。を参照してください

詳細はマニュアルの#LOAD CSVセクション。

dbms.directories.import = import ###この行にコメント

1
Peeyush

私はNeo4jデスクトップを使用していますが、他の人が言ったように、デフォルトのグラフデータベースには事前定義されたインポート場所があります。 UIを使用して場所を見つけることができます。 CSVをimportディレクトリに配置すると、相対パスを直接使用できますload csvコマンド

enter image description hereenter image description here

1
B.Mr.W.

Ubuntuシステムでは、ファイルを/usr/lib/neo4j問題を解決するのに役立ちました。他のすべての場所で、完全なアクセス許可(777)を与えようとしましたが、問題は同じままです。別のスタックオーバーフローの投稿を調べた後、ファイルをneo4jディレクトリに保存する必要があることに気付きました。

1
proprius

macOS Mojave v 10.14.5

実際、dbms.directories.import=importから~/Library/Application Support/Neo4j Desktop/Application/neo4jDatabases/database-e2dd2a9c-d450-4639-861b-1e7e42b56b31/installation-3.5.5/conf/neo4j.confのコメントを外して、サービスを再起動する必要がありました。その後、うまくいきました。すべてのファイルはimportディレクトリに配置する必要があります。

コマンドLOAD CSV WITH HEADERS FROM 'FILE:/<yourCSV>.csv' as l return lを実行します

1
lpt

データセットをneo4j-communityパスのインポートディレクトリに配置します。次に、コマンドを再実行します。

0
ParisaN

これを行うには、neo4jインストールガイドのインポートフォルダーにcsvファイルを追加します。

  1. neo4jを開き、urプロジェクトのグラフを開始します

  2. 次に、開いているフォルダタブでインポートフォルダを開きます

  3. このフォルダにur csvファイルをコピーします

  4. Cドライブでur neo4jを実行しているため、ur load構文のその部分をfile:/// C:/neo4j_module_datasets/test.csvとしてコピーします。

参照用のスナップショット

0
  1. プロパティ「dbms.directories.import = import」を設定します
  2. 事前定義されたディレクトリが完全には存在しなかったため、「/ Users/User/Documents/Neo4j/default.graphdb /」に明示的に「インポート」フォルダを作成します
  3. ここにcsvデータセットをインポートフォルダーに配置します
  4. 次に、次のようなコードを実行します-LOAD CSV FROM "file:/// C:/customers.csv" AS row

さらに、行を実行した後、コードセクションの問題点を分析して、理解を深めることができます

Neo4jバージョンは3.1.1、OSはwin10です。

私にとって、LOAD CSVはNeo4j_Database_Location/testDB/import/artists.csvから読み取ります。

最初に、csvファイルをパスF:\ code\Java\helloworld\artists.csvに配置し、私の暗号文は

LOAD CSV FROM 'file:///F:\\code\\Java\\helloworld\\artists.csv' AS line  
CREATE(:Artist {name:line[1],year:toInt(line[2])})

次に、エラーメッセージが次のように返されます。

Couldn't load the external resource at: file:/D:/Neo4j/db/testDB/import/code/Java/helloworld/artists.csv

これは、neo4j自体がファイルパスを連結することを意味します。 "D:/ Neo4j/db/testDB/import /"はNeo4jデータベースの場所で、 "code/Java/helloworld/artists.csv"はcsvファイルの場所です。

たとえば、Neo4jをパスD:\ Neo4j\Neo4j CE 3.1.1にインストールし、データベースのアクションはD:\ Neo4j\dbです。 CSVファイルをパスD:\ Neo4j\db\testDB\import\artist.csvに配置しました。パスに「インポート」ファイルフォルダーがない場合は、自分で作成し、ファイルを「インポート」フォルダーに配置する必要があります。

次に、csvファイルをパスに入れ、cyper文を入力します。

LOAD CSV from 'file:///artist.csv' as LINE
CREATE(:Artist {name:line[1],year:toInt(line[2])})

Wordでは、CSVファイルを正しいパスに配置すると、問題を解決できます。

LOAD CSV developer-manal の関連説明==

Dbms.directories.importがデフォルト値importに設定されている場合、LOAD CSVで上記のURLを使用すると、それぞれ/import/myfile.csvおよびimport/myproject/myfile.csvから読み取られます。/data/csvに設定されている場合、LOAD CSVで上記のURLを使用すると、それぞれ/data/csv/myfile.csvおよび/data/csv/myproject/myfile.csvから読み取られます。

0
KAIQI YUAN