【发布时间】:2019-08-05 07:10:44
【问题描述】:
我需要从我的数据框的uid 列创建一个名为hash_id 的新列,下面是我的代码:
//1.Define a hashing function
def calculate_hashid (uid: String) : BigInteger ={
val md = java.security.MessageDigest.getInstance("SHA-1")
val ha = new BigInteger( DatatypeConverter.printHexBinary(md.digest(uid.getBytes)), 16).mod(BigInteger.valueOf(10000))
return ha
}
//2.Convert function to UDF
val calculate_hashidUDF = udf(calculate_hashid)
//3.Apply udf on spark dataframe
val userAgg_Data_hashid = userAgg_Data.withColumn("hash_id", calculate_hashidUDF($"uid"))
我在udf(calculate_hashid) 说时遇到错误
方法 calculate_hashid(string) 缺少参数
我在网上浏览了很多示例,但无法解决,我在这里缺少什么。
【问题讨论】:
标签: scala apache-spark user-defined-functions