spark的withColumn()函数是否检查数据集或数据框的每一行

时间:2019-12-24 00:07:33

标签: scala apache-spark apache-spark-sql

我们通常使用withColumn函数将列添加到现有的spark数据帧中。

只是想知道,如果我们在数据集中有数百万行,

$guards = array_keys(config('auth.guards'));

return collect($guards)->first(function($guard){
    return auth()->guard($guard)->check();
});

方法检查数据集每一行的条件??

如果,那么性能不佳不是吗? &还有什么更好的方法

1 个答案:

答案 0 :(得分:0)

是的withColumn("columnName", column expression)将针对每一行(数百万行)进行评估。这是一个映射操作,因此具有线性可伸缩性。我不会担心性能会取决于操作的复杂性。

如果您的操作需要每一行的数据,则必须为每一行执行数据。 如果每个数据帧或该数据帧的分区的操作相同,则可以为每个数据帧或该分区执行一次该操作,并将结果写入每一行,这样可以减少一些开销。