2017-11-27 1 views
0

Ich habe zwei Spalten in CSV-Datei - Report und Actuals Data (mit einigen leeren/Null-Werte unter Actuals Data). Es folgt der Code, den ich verwendet Beziehung zwischen Report und Actuals Data zu erstellen:Erstellen von Knoten mit leeren Werten aus einer CSV-Datei in Neo4J

CREATE CONSTRAINT ON (c:RegReport) ASSERT c.name is UNIQUE; 

USING PERIODIC COMMIT 
LOAD CSV WITH HEADERS from 'file:///Dummy.csv' AS test 
MERGE (n:RegReport {name: test.RegReport}) 

WITH test, n 
FOREACH (o IN CASE WHEN test.`Actuals Data` IS NULL THEN [] ELSE [1] END | 
MERGE (p:ActualsData{value: test.`Actuals Data`}) 
MERGE (n)-[:value]->(p) 
) 

Die Rückkehr, die ich bekam, war:

(keine Änderungen, keine Zeilen)

Irgendwelche Hilfe wird geschätzt.

+0

Ihre CSV hat also zwei Spalten namens "RegReport" & "Actuals Data"? Sind Sie sicher, dass 'Actuals Data'' null' ist? Ist es nicht leer? Um bith zu testen, können Sie 'WENN coalesce (test.Actuals Data'," ") verwenden =" "' – logisima

+0

Bitte teilen Sie uns einige Beispieldaten Ihrer CSV-Datei mit. Hier –

+0

@ Bruno Peres ist eine Probe der Daten Report, Actuals Daten FR Y-14A, AA FR Y-14A, FR Y-9C, AB –

Antwort

0

Nach dem Ergebnis der LOAD CSV WITH HEADERS from 'file:///Dummy.csv' AS test RETURN test LIMIT 2 Ihre Chiffre Skript sollte dieses sein:

USING PERIODIC COMMIT 
LOAD CSV WITH HEADERS from 'file:///Dummy.csv' AS test 
MERGE (n:RegReport {name: test.`Report`}) 

WITH test, n 
FOREACH (o IN CASE WHEN test.`ActualsData` IS NULL THEN [] ELSE [1] END | 
MERGE (p:ActualsData{value: test.`ActualsData`}) 
MERGE (n)-[:value]->(p) 
) 

Hearders Ihrer CSV-Datei sind Report und ActualsData und nicht RegReport & Actuals Data.

+0

@logisma: Aber ist das nicht der Markenname, der nach meinem Verständnis etwas ist, das wir die Flexibilität haben, zu wählen. Bitte korrigieren Sie mich, wenn ich falsch liege. –

+0

Ich spreche nicht über die Bezeichnung Ihrer Knoten, sondern über Ihre CSV-Spalten. Für die Etiketten können Sie ja alles mitnehmen, was Sie wollen. Aber wenn Sie sich die Ausgabe anschauen, die Sie mir geben, sieht Neo4j zum Beispiel keine RegReport-Spalte. – logisima

+0

@logisma: Ich bin völlig einverstanden mit dem, was Sie sagen .. aber wenn ich n: RegReport - das ist, wo es beschließt, den Namen des Etiketts zu geben, und wenn ich tue.Report - das ist, wo es aus dem lesen sollte CSV-Dateien. Ist es nicht? –

Verwandte Themen