Spark为大量不同的值提供了支持

时间:2018-02-17 00:49:41

标签: apache-spark spark-dataframe

我有一个5GB的csv文件,包含以下列:

  

ColA ColB日期值

有aprox。 11k个独特的ColA值,以及大约400个独特的ColB值。

我正在尝试使用Spark来旋转表,所以我得到了以下结构:

ColA Date ColB_1  ColB_2  ColB_3  .. ColB_n
          Value_1 Value_2 Value_3 .. Val_n

我试图通过以下方式实现这一目标:

dataFrame.groupBy("ColA", "Date").pivot("ColB").agg(first("Value"))

在具有8G的2节点集群上,作业运行速度非常慢,每个集群都有4个动态分配 - 仅在几个小时内完成。我试图看看它是否可以以任何方式进行优化。我读过here,他们说:

  

为获得最佳性能,请指定枢轴列的不同值(如果您了解它们)

这是一个选项 - 获取colB的不同值并将其提供给下一个转换吗?有没有其他方式可以优化这样的工作?

查看节点,我看到CPU运行相当高的所有涉及这些转换的任务 - 转向应该是一个CPU密集型操作吗?此外,Shuffle Spill(内存)达到了11GB以上 - 这也是值得担心的事情吗?

0 个答案:

没有答案