web-dev-qa-db-ja.com

Neo4J Load CSV-> URIは階層的ではありません

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`});

ご協力いただきありがとうございます。

10
Fabien T

2.3.0 Community Editionを使用していますか?

試してください:

PERIODIC COMMIT 10000 LOAD CSV FROM'file:/// F:\\ Neo4JData \\ Destination.csvを使用する

9
Dave Fauth

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 。電話});

7
poonam Sampat

私も同じ問題を抱えていました。 ///またはF:/の代わりにF:///を配置することで解決しました。

だからあなたのソースが

F:/FolderOne/FolderTwo/file.csv

あれは。。。になる

///FolderOne/FolderTwo/file.csv

ファイルを追加するには、ソースの前にfile:を配置する必要があることに注意してください。だからついに

file:///FolderOne/FolderTwo/file.csv
5
user5882687

一度試してみると上記のように

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ファイルを読み込むことができました。

2
Viswas Menon

ファイルパスが間違っているようです。次のコマンドを試してみてください。

"file:F:///Neo4JData/Destination.csv"

試してみてください:

file:///F:/Neo4JData/Destination.csv
1
Gyro

この問題も発生していたので、.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 \

つまり、インポートフォルダです。したがって、このタイプのステートメントによってインポートする必要のあるすべてのファイルを、そのインポートフォルダーにコピーする必要があります。

0
Santu Karmakar

default.graphdbの下にフォルダインポートを作成し、そこにcsvファイルを配置します。後で、LOADCSVクエリでfile:///fileName.csvを使用できます

0
Divya Guduru

パス 'file:/// F:/Neo4JData/Destination.csv'を使用して、Destination.csvファイルをneo4jDB\importディレクトリに追加します。インポートディレクトリがない場合は、importという名前の新しいディレクトリを作成し、ファイルを追加します。 。

0
Raju

.csvを$ NEO4JHOME/default.graphdb/importディレクトリに配置すると機能しました。フォルダーを作成する必要がある場合もあれば、confのdbms.directories.import = import行のコメントを解除する場合もあります。私は知らない、それは難しい方法でした:)

ただし、ルートではなくインポートディレクトリにある場合でも、ドライブ指定子、つまりfile:/// c:\ csv2import.csvを含める必要があることがわかりました。

0
Daniel Escasa