0

我试图使用PySpark输出一个具有〜5,000,000行的RDD作为文本文件。这需要很长时间,所以关于如何使.saveAsTextFile()更快的一些提示?从Spark输出数十亿行

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

+1

您能否告诉我们它需要多长时间,关于什么样的群集和作业配置?行数有多大? – DNA

+0

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

回答

1

不知道长时间的多久,或知道每个行的大小或集群的大小,我只能做几个猜测。

首先,Spark一般会为每个分区输出一个文件。如果您的RDD是单个(或少数)分区,那么输出到HDFS或GCS将显得很慢。考虑在输出之前进行重新分区(重新分区也需要时间,如果可以将重新分区工作到管道中,以便它更有用地工作)。您可以始终调用RDD#getNumPartitions来查看RDD中有多少个分区,并在需要时进行智能重新校正。

我能想到的第二种可能性是,您的HDFS可能被置备(例如,空间不足),或者有问题导致错误没有得到很好的表现。我希望驱动程序可以看到任何HDFS写入错误,但可能在容器日志中。

相关问题