私はディレクトリにn個のzipを持っていますが、それらのそれぞれを抽出し、zip内にあるファイルまたは2つのデータからいくつかのデータを抽出してグラフDBに追加したいとします。私はこの全部のために逐次的なpythonスクリプトを作ったが、私はそれをsparkのために変換することに固執している。私のzipはすべてHDFSディレクトリにあります。そして、グラフDBはNeo4jです。私はまだneo4jとスパークを接続することについて学んでいますが、私はより初期のステップで立ち往生しています。pysparkでzipを操作する
私のコードはこれらの行に沿っているべきだと思っています。
# 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)
これをテストするために何ができるのかは、ジップを抽出し、その中のファイルを読み取る方法です。私はsc.textFile
によってジップを読むことができましたが、それにtake(1)
を実行すると、16進データを返しました。
ですから、ジップで読み込んでデータを抽出することは可能ですか?または、データをHDFSに入れる前にデータを抽出する必要がありますか?あるいは、これに対処するための他のアプローチがありますか?
https://docs.databricks.com/spark/latest/data-sources/zip-files.html役立つ可能性があります –