【问题标题】:Difference between a map and udfmap 和 udf 的区别
【发布时间】:2016-12-26 14:48:41
【问题描述】:

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

我想知道 udf 在后台是如何工作的。在这种情况下,给我一个使用 map/udf 的比较。性能有何不同?

谢谢!

【问题讨论】:

标签: scala apache-spark udf


【解决方案1】:

简单地说,mapudf 更灵活。使用map,您可以在一行中操作的列数没有限制。假设您要导出 5 列数据的值并删除 3 列。你需要做withColumn/udf 5 次,然后是select。使用 1 个map 函数,您可以完成所有这些操作。

【讨论】:

  • 如果只处理一列,使用withColumn/udf是否比map更有效?
  • 一般来说,从 RDD 创建数据帧会有一些开销,所以withColumn/udf 应该更有效。有关更多详细信息,zero323 的回复可能会有所帮助stackoverflow.com/q/38860808/1560062
猜你喜欢
  • 2022-01-10
  • 1970-01-01
  • 2016-05-10
  • 2012-04-21
  • 2017-08-08
  • 2022-01-22
  • 2012-07-07
  • 2020-04-02
  • 2013-03-17
相关资源
最近更新 更多