Neo4jデータベースにCSVをインポートしようとしましたが、問題が発生します。
私のデスクトップコンピューター(Windows 7、Java 1.8.0_40-b25)では、LOAD CSVはうまく機能しますが、サーバー(Windows 2012 R2、Java 1.8.0_65-b17)、「URIは階層的ではありません」というエラーメッセージが表示されます。
C:、F:...にデータを入れようとしていますが変更はありません。
コードは次のとおりです。
USING PERIODIC COMMIT 100
LOAD CSV WITH HEADERS FROM
"file:F:/Neo4JData/Destination.csv"
AS line
MERGE (d:Destination {`Code`: line.`Code`});
ご協力いただきありがとうございます。
2.3.0 Community Editionを使用していますか?
試してください:
PERIODIC COMMIT 10000 LOAD CSV FROM'file:/// F:\\ Neo4JData \\ Destination.csvを使用する
DBのデフォルトパスにインポートフォルダを作成し、そこにファイルを配置します。
例:C:\ Users\XXXXY\Documents\Neo4j\default.graphdb\importを実行し、そこにcsvを配置します。クエリでは、USING PERIODIC COMMIT LOAD CSV WITH HEADERS FROM "file:///customers.csv" AS row CREATE(:Customer {companyName:row.CompanyName、customerID:row.CustomerID、fax:row.Fax、phone:row 。電話});
私も同じ問題を抱えていました。 ///
またはF:/
の代わりにF:///
を配置することで解決しました。
だからあなたのソースが
F:/FolderOne/FolderTwo/file.csv
あれは。。。になる
///FolderOne/FolderTwo/file.csv
ファイルを追加するには、ソースの前にfile:
を配置する必要があることに注意してください。だからついに
file:///FolderOne/FolderTwo/file.csv
一度試してみると上記のように
USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM "file:///E:/AdventureWorks/adventureworks-neo4j/data/products.csv" as row
CREATE (:Product {productName: row.ProductName, productNumber: row.ProductNumber, productId: row.ProductID, modelName: row.ProductModelName, standardCost: row.StandardCost, listPrice: row.ListPrice});
「URIは階層的ではありません」というエラーは消えます。次に、おそらく、次のようなリソースを読み込めなかったというエラーが表示されます。
TransientError.Statement.ExternalResourceFailure
同じことを解決するには、neo4j.confファイルを見つける必要があります。
私はWindows10マシンとneo4jのコミュニティエディションを使用しているので、以下のパスで同じものを見つけることができます。
C:\Users\{username}\AppData\Roaming\Neo4j Community Edition
Confファイルを編集し、行をコメントアウトします
dbms.directories.import=import
上記の手順を実行すると、csvファイルを読み込むことができました。
ファイルパスが間違っているようです。次のコマンドを試してみてください。
"file:F:///Neo4JData/Destination.csv"
試してみてください:
file:///F:/Neo4JData/Destination.csv
この問題も発生していたので、.csvファイルが存在するフォルダーを次の場所にコピーしました。
C:\ Users\Username\AppData\Roaming\Neo4j Desktop\Application\neo4jDatabases\database-27badd10-8989-482d-871b-cad746091f07\Installation-3.3.3\import \
neo4jがインストールされていて、「file:/// c:// ........」を指定してファイルからデータをインポートしようとすると、neo4jはC:\ Users \の場所でそのファイルの検索を開始するようです。ユーザー名\ AppData\Roaming\Neo4jDesktop\Application\neo4jDatabases\database-27badd10-8989-482d-871b-cad746091f07\Installation-3.3.3\import \
つまり、インポートフォルダです。したがって、このタイプのステートメントによってインポートする必要のあるすべてのファイルを、そのインポートフォルダーにコピーする必要があります。
default.graphdb
の下にフォルダインポートを作成し、そこにcsvファイルを配置します。後で、LOADCSVクエリでfile:///fileName.csvを使用できます
パス 'file:/// F:/Neo4JData/Destination.csv'を使用して、Destination.csvファイルをneo4jDB\importディレクトリに追加します。インポートディレクトリがない場合は、importという名前の新しいディレクトリを作成し、ファイルを追加します。 。
.csvを$ NEO4JHOME/default.graphdb/importディレクトリに配置すると機能しました。フォルダーを作成する必要がある場合もあれば、confのdbms.directories.import = import行のコメントを解除する場合もあります。私は知らない、それは難しい方法でした:)
ただし、ルートではなくインポートディレクトリにある場合でも、ドライブ指定子、つまりfile:/// c:\ csv2import.csvを含める必要があることがわかりました。