Ich bin relativ neu in Apache Spark, und ich möchte eine einzige RDD in Python aus Listen von Wörterbüchern erstellen, die in mehreren JSON-Dateien gespeichert sind (jeweils gezippt und enthält eine Liste von Wörterbüchern). Die resultierende RDD würde dann grob gesagt alle Listen von Wörterbüchern enthalten, die in einer einzigen Liste von Wörterbüchern kombiniert sind. Ich konnte dies in der Dokumentation (https://spark.apache.org/docs/1.2.0/api/python/pyspark.html) nicht finden, aber wenn ich es verpasst habe, lass es mich wissen.Wie man das Verzeichnis von JSON-Dateien in Apache Spark in Python lädt
Bisher habe ich versucht, die JSON-Dateien zu lesen und die kombinierte Liste in Python zu erstellen, dann benutze sc.parallelize(), aber der gesamte Datensatz ist zu groß, um in den Speicher zu passen, also ist dies keine praktische Lösung. Es scheint, als hätte Spark eine clevere Lösung für diesen Anwendungsfall, aber ich bin mir dessen nicht bewusst.
Wie kann ich eine einzelne RDD in Python erstellen, die die Listen in allen JSON-Dateien enthält?
Ich sollte auch erwähnen, dass ich Spark SQL nicht verwenden möchte. Ich würde gerne Funktionen wie Karte, Filter usw. verwenden, wenn das möglich ist.
Dank für die Beantwortung. Ich hätte erwähnen sollen, dass ich Spark SQL nicht verwenden möchte, ich möchte eine Nicht-SQL-Verarbeitungspipeline verwenden, wie in der Frage, auf die Sie verwiesen haben. Ich werde meine ursprüngliche Frage aktualisieren. Die Antwort auf die Frage, auf die Sie verwiesen haben, scheint in Scala zu liegen, nicht in Python. Nochmals vielen Dank für Ihre Hilfe! – Brandt
Richtig, es ist in Scala, aber die Idee kann auf Ihr Problem angewendet werden: Laden Sie den Eingabedatensatz mit 'sparkContext.textFile()' (was eigentlich scheint, gziped Dateien zu unterstützen] (http://stackoverflow.com/questions/16302385/gzip-support-in-spark)), analysieren Sie dann die String-Zeilen mit einem Parser Ihrer Wahl (z. B. [das json-Modul] (https://docs.python.org/2/library/json.html))), dann bearbeiten Sie, wie Sie wünschen. – tgpfeiffer
Danke, das hat funktioniert! Der Schlüsselschritt war die Verwendung der Kartenfunktion auf json.loads. Ich werde genau das posten, was ich als Antwort getan habe. Vielen dank für Deine Hilfe. – Brandt