2016-03-16 65 views
0

我想通過刪除口音正常化作者姓名在星火列編寫自定義的Spark功能/數據幀

Input: orčpžsíáýd 
Output: orcpzsiayd 

下面的代碼可以讓我實現這一目標。我怎麼一直不知道如何使用spark函數做到這一點,其中我的輸入是dataframe col。

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"))) 

我剛開始學習的火花。所以請讓我知道是否有更好的方法來實現這個沒有UDFs。

回答

1

它需要一個UDF:

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

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