在Spark列/ Dataframe上编写Custom Spark函数

时间:2016-03-16 21:36:25

标签: scala apache-spark

我想通过删除重音

来规范作者的姓名
Input:  orčpžsíáýd
Output: orcpzsiayd

下面的代码将让我实现这一目标。我怎么不知道如何使用我的输入为dataframe 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")))

我刚开始学习火花。所以如果没有UDF,有更好的方法可以让我知道。

1 个答案:

答案 0 :(得分:1)

它需要一个udf:

val stringNormalizer = udf((s: String) => StringUtils.stripAccents(s))

df_article.select(stringNormalizer(col("authors")))