地图和udf之间的区别

voi*_*oid 8 scala apache-spark udf

当我在Spark中使用DataFrame时,我有时只需要编辑该DataFrame中特定列的值.例如.如果count我的数据框中有一个字段,如果我想添加1每个值count,那么我可以编写一个自定义withColumn的udf 来使用DataFrames 的功能完成工作,或者我可以map在DataFrame上做一个然后从结果RDD中提取另一个DataFrame.

我想知道的是udf实际上是如何工作的.在这种情况下,使用map/udf给我一个比较.性能差异是什么?

谢谢!

Dav*_*vid 4

简单来说,map就是比udf. 使用 时map,您可以在一行中操作的列数没有限制。假设您想要导出 5 列数据的值并删除 3 列。您需要执行withColumn/ udf5 次,然后执行select. 使用 1 个map函数,您就可以完成这一切。

  • 如果您只处理一列,使用“withColumn”/“udf”是否比“map”更有效? (2认同)