0

我試圖使用PySpark輸出一個具有〜5,000,000行的RDD作爲文本文件。這需要很長時間,所以關於如何使.saveAsTextFile()更快的一些提示?從Spark輸出數十億行

行是每列3列,我正在保存到HDFS。

+1

您能否告訴我們它需要多長時間,關於什麼樣的羣集和作業配置?行數有多大? – DNA

+0

你是否將它保存到'HDFS'中? –

回答

1

不知道長時間的多久,或知道每個行的大小或集羣的大小,我只能做幾個猜測。

首先,Spark一般會爲每個分區輸出一個文件。如果您的RDD是單個(或少數)分區,那麼輸出到HDFS或GCS將顯得很慢。考慮在輸出之前進行重新分區(重新分區也需要時間,如果可以將重新分區工作到管道中,以便它更有用地工作)。您可以始終調用RDD#getNumPartitions來查看RDD中有多少個分區,並在需要時進行智能重新校正。

我能想到的第二種可能性是,您的HDFS可能被置備(例如,空間不足),或者有問題導致錯誤沒有得到很好的表現。我希望驅動程序可以看到任何HDFS寫入錯誤,但可能在容器日誌中。

相關問題