Windows環境で、次のステートメントで.csvファイルをロードしようとしています。
LOAD CSV WITH HEADERS FROM "file:///E:/Neo4j/customers.csv" AS row
正しく機能していないようで、次のメッセージが返されます。外部リソースをロードできませんでした:
ファイル:/E:/Neo4j/Customers.csv Neo.TransientError.Statement.ExternalResourceFailure
何が悪いのですか?前もって感謝します
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
これは私のために働いた。
セキュリティ構成のようです。これが私が見つけた元の答えです: https://stackoverflow.com/a/37444571/327004
これを回避するために、conf/neo4j.confに次の設定を追加できます。
dbms.security.allow_csv_import_from_file_urls=true
または、インポートディレクトリを変更しますdbms.directories.import=import
あなたはファイルで答えを見つけることができます
"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
(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:///...
を使用します
おそらくURLの問題です。file:c:/path/to/data.csv
をお試しください
私のブログ投稿を参照してください:
Neo4jデスクトップで、使用しているデータベースを選択し、設定に移動すると、解決策が見つかります... "dbms.directories.import = import"行にコメントするだけです
#この設定は、すべてのLOAD CSV
インポートファイルをimport
ディレクトリの下に制限します。削除またはコメントアウト
#ファイルシステムのどこからでもファイルをロードできるようにする;これにより、セキュリティ上の問題が発生する可能性があります。を参照してください
詳細はマニュアルの#LOAD CSV
セクション。
dbms.directories.import = import ###この行にコメント
Ubuntuシステムでは、ファイルを/usr/lib/neo4j
問題を解決するのに役立ちました。他のすべての場所で、完全なアクセス許可(777)を与えようとしましたが、問題は同じままです。別のスタックオーバーフローの投稿を調べた後、ファイルをneo4jディレクトリに保存する必要があることに気付きました。
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
を実行します
データセットをneo4j-communityパスのインポートディレクトリに配置します。次に、コマンドを再実行します。
これを行うには、neo4jインストールガイドのインポートフォルダーにcsvファイルを追加します。
neo4jを開き、urプロジェクトのグラフを開始します
次に、開いているフォルダタブでインポートフォルダを開きます
このフォルダにur csvファイルをコピーします
Cドライブでur neo4jを実行しているため、ur load構文のその部分をfile:/// C:/neo4j_module_datasets/test.csvとしてコピーします。
さらに、行を実行した後、コードセクションの問題点を分析して、理解を深めることができます
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から読み取られます。