Bir dizinde fermuarlar var ve bunların her birini ayıklamak ve daha sonra bir dosyadan veya fermuarların içinde yatan iki veriden birini ayıklamak ve bir grafik DB'ye eklemek istiyorum. Her şey için sıralı bir python betiği yaptım, ama kıvılcımı dönüştürmek için sıkışıp kaldım. Tüm fermuarları bir HDFS dizinindedir. Ve o, DB'nin Neo4j olduğunu çiziyor. Henüz sparkle neo4j ile bağlantı kurmayı öğreniyorum ama daha başlangıç aşamasında kaldım.pyspark içinde fermuarlar ile çalışma
Kodumun bu satırlarda olması gerektiğini düşünüyorum.
# 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)
Bunu sınamak için ne yapamıyorum, fermuarları ayıklamak ve içindeki dosyaları okumaktır. Zip'i sc.textFile
ile okuyabiliyordum ama üzerinde take(1)
çalıştıran onaltılık veriyi döndürdü.
Yani, bir zip içinde okumak ve veri ayıklamak mümkün mü? Ya da, verileri HDFS'ye koymadan önce çıkarmalı mıyım? Ya da bununla başa çıkmak için başka bir yaklaşım var mı?
https://docs.databricks.com/spark/latest/data-sources/zip-files.html Yararlı olabilir –