2017-07-17 16 views
0

現在、私はHDFSへの書き込みにparitionByを使用します。DF.write.partitionBy(「ID」)スパーク:PartitionBy、変更出力ファイル名

私は、出力構造は、デフォルトの動作である(ように見えるれます)

../id=1/

../id=2/

../id=3/

私は次のように見ている構造たいと思います:

をなど

if id = 1, then a 
if id = 2, then b 

が...やり方があるよう

../a/

../b/

../c/

ファイル名の出力を変更するには?そうでない場合は、これを行う最善の方法は何ですか?

答えて

0

これを達成するためにSparkのpartitionByを使用することはできません。

代わりに、あなたはそうのように、あなたのDataFrameそのコンポーネントのパーティションに侵入し、一つずつを保存する必要があります。

base = ord('a') - 1 
for id in range(1, 4): 
    DF.filter(DF['id'] == id).write.save("..." + chr(base + id)) 
} 

また、手動でその後、スパークのpartitionBy機能を使用して全体のデータフレームを書き込み、することができますHDFS APIを使用してパーティションの名前を変更します。

関連する問題