【发布时间】:2016-01-12 00:40:11
【问题描述】:
我们有一个初始阶段可适当扩展的管道 - 每个使用几十个工作人员。
最后一个阶段是
dataFrame.write.format(outFormat).mode(saveMode).
partitionBy(partColVals.map(_._1): _*).saveAsTable(tname)
在这个阶段,我们最终得到了一个单个工人。这显然对我们不起作用——事实上,worker 的磁盘空间已经用完了——而且速度非常慢。
为什么该命令最终只能在单个工作人员/单个任务上运行?
更新输出格式为parquet。分区列数不影响结果(尝试一列和几列)。
另一个更新 没有以下条件(由下面的答案提出):
-
coalesce或partitionBy声明 -
window/ 解析函数 Dataset.limitsql.shuffle.partitions
【问题讨论】:
-
类似的问题,你只问过stackoverflow.com/questions/51050272/…
标签: scala apache-spark