当我在Spark中使用DataFrame时,我有时只需编辑该DataFrame中特定列的值。例如。如果我的数据框中有count
字段,并且如果我想将1
添加到count
的每个值,那么我可以编写自定义udf来完成工作DataFrames的withColumn
功能,或者我可以在DataFrame上执行map
,然后从结果RDD中提取另一个DataFrame。
我想知道的是udf实际上是如何工作的。在这种情况下,使用map / udf给我一个比较。性能差异是什么?
谢谢!
答案 0 :(得分:3)
简单地说,map
比udf
更灵活。对于map
,您可以在一行中操作的列数没有限制。假设您要导出5列数据的值并删除3列。您需要执行withColumn
/ udf
5次,然后执行select
。使用1 map
函数,您可以完成所有这些操作。