У меня есть n zips в каталоге, и я хочу извлечь каждый из них, а затем извлечь некоторые данные из файла или два, лежащие внутри zip-файлов, и добавить их в DB-диаграмму. Я выполнил последовательный скрипт python для всего этого, но я застрял в его преобразовании для искры. Все мои zip-файлы находятся в каталоге HDFS. И, он граф DB - Neo4j. Мне еще предстоит узнать о подключении искры с neo4j, но я застрял на более раннем этапе.Работа с zip-файлами в pyspark
Я думаю, что мой код должен быть вдоль этих линий.
# Names of all my zips
zip_names = ["a.zip", "b.zip", "c.zip"]
# function extract_&_populate_graphDB() returns 1 after doing all the work.
# This was done so that a closure can be applied to start the spark job.
sc.parallelize(zip_names).map(extract_&_populate_grapDB).reduce(lambda a, b: a+b)
Что я не могу сделать, чтобы проверить это, как извлечь zip-файлы и прочитать файлы внутри. Я смог прочитать zip на sc.textFile
, но при запуске take(1)
на нем он получил шестнадцатеричные данные.
Итак, можно ли читать в zip и извлекать данные? Или я должен извлечь данные перед тем, как поместить их в HDFS? Или, может быть, есть другой подход, чтобы справиться с этим?
https://docs.databricks.com/spark/latest/data-sources/zip-files.html Может быть полезно –