web-dev-qa-db-fra.com

Neo4J Load CSV -> L'URI n'est pas hiérarchique

J'essaie d'importer du CSV dans une base de données Neo4j et j'ai un problème.

Sur mon ordinateur de bureau (Windows 7, Java 1.8.0_40-b25), LOAD CSV fonctionne très bien. Mais sur le serveur (Windows 2012 R2, Java 1.8.0_65-b17), j’ai le message d’erreur «L’URI n’est pas hiérarchique».

J'essaie de mettre les données sur C :, F: ... pas de changement.

Voici le code:

USING PERIODIC COMMIT 100
LOAD CSV WITH HEADERS FROM 
"file:F:/Neo4JData/Destination.csv"
AS line
MERGE (d:Destination {`Code`: line.`Code`});

Merci de votre aide.

10
Fabien T

Utilisez-vous 2.3.0 Community Edition?

essayer:

UTILISATION DE PERIODIC COMMIT 10000 LOAD CSV DE 'Fichier: /// F: \\ Neo4JData \\ Destination.csv

9
Dave Fauth

Créez un dossier d'importation dans le chemin par défaut de la base de données et placez-y le fichier qui m'a aidé.

Par exemple: C:\Utilisateurs\XXXXY\Documents\Neo4j\default.graphdb\import et placez-y le csv. Dans la requête, utilisez EN UTILISANT PERIODIC COMMIT LOAD CSV WITH HEADERS FROM "file: ///customers.csv" AS row CREATE (: Client {companyName: row.CompanyName, customerID: row.CustomerID, fax: row.Fax, phone: row.Phone});

7
poonam Sampat

J'ai eu le même problème. Je l'ai résolu en mettant /// au lieu de F:/ ou F:///.

Donc, si votre source est

F:/FolderOne/FolderTwo/file.csv

Il devient

///FolderOne/FolderTwo/file.csv

Rappelez-vous que pour ajouter le fichier, vous devez placer file: devant la source. Donc finalement

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

Comme spécifié ci-dessus une fois que vous essayez avec 

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

L'erreur "L'URI n'est pas hiérarchique" disparaît. Ensuite, vous obtiendrez probablement une erreur disant qu'il ne pourrait pas charger la ressource telle que 

TransientError.Statement.ExternalResourceFailure

Afin de résoudre le même problème, vous devriez trouver le fichier neo4j.conf. 

Depuis que j'utilise une machine Windows 10 et une édition communautaire de neo4j, je peux trouver la même chose dans le chemin ci-dessous.

C:\Users\{username}\AppData\Roaming\Neo4j Community Edition

Edite le fichier de configuration et commente la ligne

dbms.directories.import=import

Suivre les étapes ci-dessus m'a permis de charger le fichier csv.

2
Viswas Menon

Le chemin du fichier semble faux, pouvez-vous essayer avec:

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

Essayez avec:

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

J'avais aussi ce problème, alors j'ai copié le dossier dans lequel le fichier .csv était présent à l'emplacement suivant:

C:\Utilisateurs\Nom d'utilisateur\AppData\Roaming\Bureau Neo4j\Application\neo4jDatabases\database-27badd10-8989-482d-871b-cad746091f07\installation-3.3.3\import \

il semble que lorsque neo4j est installé et que nous essayons d'importer des données à partir de fichiers en donnant "file: /// c: // ........", alors neo4j commence à rechercher ce fichier à l'emplacement C:\Users\Nom d'utilisateur\AppData\Roaming\Bureau Neo4j\Application\neo4jDatabases\database-27badd10-8989-482d-871b-cad746091f07\installation-3.3.3\import \

c'est-à-dire le dossier d'importation. Nous devons donc copier tous les fichiers nécessaires pour être importés par ce type d’instruction dans ce dossier d’importation.

0
Santu Karmakar

Créez une importation de dossier sous default.graphdb et placez-y vos fichiers csv. Plus tard, vous pourrez utiliser file: ///nom_fichier.csv dans votre requête LOAD CSV

0
Divya Guduru

Utilisez le chemin 'fichier: /// F: /Neo4JData/Destination.csv' et ajoutez le fichier Destination.csv au répertoire neo4jDB\import. Si le répertoire d'importation n'existe pas, créez un nouveau répertoire nommé import et ajoutez le fichier. .

0
Raju

Mettre le fichier .csv dans le répertoire $ NEO4JHOME/default.graphdb/import a fonctionné. Vous devrez peut-être créer le dossier, ou peut-être supprimer les commentaires de la ligne dbms.directories.import =, import dans conf peut le faire. Je ne sais pas, l'ai fait à la dure :)

Cependant, j’ai trouvé que je devais quand même inclure le spécificateur de lecteur, c’est-à-dire fichier: /// c:\csv2import.csv, même s’il ne se trouvait pas à la racine mais dans le répertoire d’importation.

0
Daniel Escasa