【问题标题】:What are Spark UDFS?什么是 Spark UDFS?
【发布时间】:2018-08-07 20:15:31
【问题描述】:

我一直在编写一些转换器和估算器,并且一直在关注 udf。我已经阅读了源代码并且大致了解它们的用途,但我希望有人能给我一个高层次的解释。

我从代码中收集到的是,您可以创建一个 udf 并应用它,以便它在特定列的数据框中的每一行上运行。我想我很好奇我们为什么要这样做?

【问题讨论】:

  • 是的,我看过那个,感觉它并没有达到我想要的高水平。不过还是谢谢。
  • UDF 只是在使用 SQL 方法的同时扩展框架功能的一种方式。假设您有一些公式要应用于某些地理标记事件,例如正弦距离。 UDF 让你定义一些haversine 函数,直接在你的SQL 查询中使用它,比如SELECT haversine(x, y) from event ... 。否则,替代方法是转换回 RDD 或其他类似的多步方法。 UDF 只是让功能更易于表达和阅读,在幕后它仍然只是一个map

标签: scala apache-spark


【解决方案1】:

您在 RDD 和 DataFrame 上编写的所有自定义操作本质上都是“用户定义的函数”。不过,您可以注册一个 UDF,以便能够在 Spark-SQL 中使用的选择语句中使用它 (sqlContext.sql("select myUDF(fieldname) from myRegistredDF")...

【讨论】:

  • 确实有道理。
【解决方案2】:

UDF(用户定义函数)和 UDAF(用户定义聚合函数)允许扩展语言结构以对分布式数据集进行临时处理。 详细解释可以参考这个博客。 https://ragrawal.wordpress.com/2015/10/02/spark-custom-udf-example/

【讨论】:

    猜你喜欢
    • 2019-12-05
    • 2019-11-23
    • 2015-05-12
    • 2016-03-29
    • 2018-09-08
    • 2017-06-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多