2017-07-17 71 views
0

目前,當我使用paritionBy寫HDFS:DF.write.partitionBy(「ID」)星火:PartitionBy,改變輸出文件名

我會得到輸出結構看起來像(這是默認行爲)

../id=1/

../id=2/

../id=3/

我想的結構看起來像:

../a/

../b/

../c/

這樣

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

..等

是否有辦法改變文件名輸出?如果不是,最好的辦法是什麼?

回答

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重命名分區。