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.
Utilisez-vous 2.3.0 Community Edition?
essayer:
UTILISATION DE PERIODIC COMMIT 10000 LOAD CSV DE 'Fichier: /// F: \\ Neo4JData \\ Destination.csv
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});
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
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.
Le chemin du fichier semble faux, pouvez-vous essayer avec:
"file:F:///Neo4JData/Destination.csv"
Essayez avec:
file:///F:/Neo4JData/Destination.csv
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.
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
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. .
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.