Ich habe viele Tutorials zum Laden von CSV-Daten (Gremlin) im Format von Vertices und Edges in AWS Neptune gesehen. Aus vielen Gründen kann ich keine Scheitelpunkte und Kanten zum Laden von Daten erstellen. Stattdessen habe ich nur die rohe CSV-Datei, in der jede Zeile ein Datensatz ist (z. B. eine Person).
Wie kann ich Knoten und Beziehungen aus jeder Datensatzzeile aus der rohen CSV-Datei in Neptune über die Notebook-Oberfläche erstellen?
Lösung des Problems
Da Sie dies in den Notebooks erwähnt haben, werden die folgenden Beispiele alle in einem Jupyter-Notebook ausgeführt. Ich habe die von Ihnen erwähnten Datensätze nicht zur Hand, also erstellen wir einen einfachen in einer Notebook-Zelle mit.
%%bash
echo "code,city,region
AUS,Austin,US-TX
JFK,New York,US-NY" > test.csv
Wir können dann die openCypher-CREATE-Schritte für die Knoten generieren, die in dieser CSV-Datei enthalten sind, indem wir eine einfache Zelle wie die folgende verwenden:
import csv
with open('test.csv', newline='') as csvfile:
reader = csv.DictReader(csvfile, escapechar="\\")
query = ""
for row in reader:
s = "CREATE (:Airport {"
for k in row:
s += f'{k}:"{row[k]}", '
s = s[:-2] + '})\n'
query += s
print(query)
Was nachgibt
CREATE (:Airport {code:"AUS", city:"Austin", region:"US-TX"})
CREATE (:Airport {code:"JFK", city:"New York", region:"US-NY"})
Schließlich lassen wir die Zellenmagie des Notebooks oc
diese Abfrage für uns ausführen
ipython = get_ipython()
magic = ipython.run_cell_magic
magic(magic_name = "oc", line='', cell=query)
Um zu überprüfen, ob die Abfrage funktioniert hat
%%oc
MATCH (a:Airport)
RETURN a.code, a.city
was zurückgibt:
a.code a.city
1 AUS Austin
2 JFK New York
Es gibt viele Möglichkeiten, dies zu tun, aber dies ist eine einfache Möglichkeit, wenn Sie in den Notizbüchern bleiben möchten. Da Ihre Frage nicht viele Details oder ein Beispiel für das, was Sie bisher versucht haben, enthält, gibt Ihnen dies hoffentlich einige Hinweise.
Keine Kommentare:
Kommentar veröffentlichen