我正在尝试制作一个采用列值的udf函数,但该列值的条件是我必须在该列中插入另一个列值。我的代码就像:
val udfMobileDeviceId = udf { (os_type: String) =>
if (os_type == "android") $"androidIdfa" else $"appleIdfv"
}
答案 0 :(得分:2)
将这些列传递给udf:
val udfMobileDeviceId = udf { (os_type: String, androidIfa:String, appleIdfv:String) =>
if (os_type == "android") androidIdfa else appleIdfv
}
甚至更好:不要为此使用UDF,只需在DataFrame API中使用 :
df
.withColumn("mobileDeviceId", when($"os_type"==="andoid",$"androidIdfa").otherwise($"appleIdfv"))