【发布时间】: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