我有一个有大约458MM行的火花数据框。它最初的RDD所以然后我转换使用sqlcontext.createDataFrame RDD的将DataFrame保存到拼花板需要很多时间
前几行火花数据帧如下:
sorted_rdd.take(5)
Out[25]:
[(353, 21, u'DLR_Where Dreams Come True Town Hall', 0, 0.896152913570404),
(353, 2, u'DLR_Leading at a Higher Level', 1, 0.7186800241470337),
(353,
220,
u'DLR_The Year of a Million Dreams Leadership Update',
0,
0.687175452709198),
(353, 1, u'DLR_Challenging Conversations', 1, 0.6632049083709717),
(353,
0,
u'DLR_10 Keys to Inspiring, Engaging, and Energizing Your People',
1,
0.647541344165802)]
我保存到数据帧如下
sorted_df=sqlContext.createDataFrame(sorted_rdd,['user','itemId','itemName','Original','prediction'])
最后将其保存为如下:
sorted_df.write.parquet("predictions_df.parquet")
我使用的Spark具有纱每个10g和5个核心的50个执行者。写入命令将继续运行一个小时,但文件尚未保存。
是什么让它变慢?
它已经物化,因为我做了一个计数。如何在火花上下文中增加分区? – Baktaawar