在 Spark 列/数据框上编写自定义 Spark 函数
Posted
技术标签:
【中文标题】在 Spark 列/数据框上编写自定义 Spark 函数【英文标题】:Writing Custom Spark functions on Spark columns/ Dataframe 【发布时间】:2016-03-16 21:36:24 【问题描述】:我想通过删除重音来规范作者姓名
Input: orčpžsíáýd
Output: orcpzsiayd
下面的代码将允许我实现这一点。我怎么不知道如何使用我的输入是数据框 col 的 spark 函数来做到这一点。
def stringNormalizer(c : Column) = (
import org.apache.commons.lang.StringUtils
return StringUtils.stripAccents(c.toString)
)
我应该可以这样称呼它
val normalizedAuthor = flat_author.withColumn("NormalizedAuthor",
stringNormalizer(df_article("authors")))
我刚刚开始学习 Spark。所以请让我知道是否有更好的方法可以在不使用 UDF 的情况下实现这一目标。
【问题讨论】:
【参考方案1】:它需要一个 udf:
val stringNormalizer = udf((s: String) => StringUtils.stripAccents(s))
df_article.select(stringNormalizer(col("authors")))
【讨论】:
以上是关于在 Spark 列/数据框上编写自定义 Spark 函数的主要内容,如果未能解决你的问题,请参考以下文章