【发布时间】:2016-08-29 22:17:11
【问题描述】:
对于DataFrame,使用udf 和df.withColumn("newCol", myUDF("someCol")) 很容易通过一些操作生成一个新列。要在Dataset 中做这样的事情,我想我会使用map 函数:
def map[U](func: (T) ⇒ U)(implicit arg0: Encoder[U]): Dataset[U]
您必须将整个案例类 T 作为输入传递给函数。如果Dataset[T] 有很多字段/列,那么如果您只是想通过对T 的众多列之一进行操作来制作一个额外的列,那么传递整行似乎非常低效。我的问题是,Catalyst 是否足够聪明,能够对此进行优化?
【问题讨论】:
标签: apache-spark apache-spark-dataset apache-spark-2.0