pyspark worker内から hdfs との間でファイルの読み取り/スキャン/書き込みを行う必要があります。
次の API はドライバから実行されるため、適用できないことに注意してください。
sc.textFile()
sc.saveAsParquetFile()
等
追加のサードパーティ ライブラリ (pyhadoop など) を使用しないことが非常に望ましいでしょう。
1つのオプションは、例えばシェルアウトすることです
os.system('hdfs dfs -ls %(hdfsPath)s' %locals())
しかし、これを達成するためのよりネイティブなpysparkの方法はありますか?
更新各ワーカーが hdfs から異なるデータを読み取るため、これはデータのブロードキャストの場合ではありません。使用例の 1 つは、各ワーカーでいくつかの大きなバイナリ ファイルを読み取ることです (これは明らかにブロードキャストの場合ではありません)。もう 1 つのケースは、命令を含む「コマンド」ファイルを読み取ることです。私はこのパターンをネイティブ Hadoop と scala spark でうまく使用しました。