Spark SQL中PIVOT操作的时间和空间复杂度是多少?

时间:2019-06-24 09:35:50

标签: sql apache-spark time-complexity space-complexity

最近,我正在研究一个大型的键-值-值数据集。我想按名称分组,按键旋转,然后为这些值选择第一个值以生成新列。

操作如下(在Spark sql中):

val df: DataFrame
df.groupBy("key").pivot("name").agg(first("value"))
// all executors go out of memory for an input file of 600MB
df.write.parquet("...")

问题是,当前需要生成约5000列,并且每个键都有大量的空值。由于SQL似乎为每个新列都建立了if-else语句,所以我想知道此问题的时间和空间复杂度是多少(因为所有执行程序似乎都内存不足)。

预先感谢

0 个答案:

没有答案