我使用Scala從Spark中的withColumn調用udf時收到錯誤,併發生錯誤。 使用SBT構建時發生此錯誤。使用Scala從Spark withColumn中調用udf時出錯
val hiveRDD = sqlContext.sql("select * from iac_trinity.ctg_us_clickstream")
hiveRDD.persist()
val trnEventDf = hiveRDD
.withColumn("system_generated_id", getAuthId(hiveRDD("session_user_id")))
.withColumn("application_assigned_event_id", hiveRDD("event_event_id"))
val getAuthId = udf((session_user_id:String) => {
if (session_user_id != None){
if (session_user_id != "NULL"){
if (session_user_id != "null"){
session_user_id
}else "-1"
}else "-1"
}else "-1"
}
)
我收到這是錯誤 -
scala:58: No TypeTag available for String
val getAuthId = udf((session_user_id:String) => {
編譯正確的,而不是(session_user_id時:字符串)我使用(session_user_id:任何),但在運行時失敗,因爲任何在Spark中不被識別。 請讓我知道如何處理這個。
錯誤與否沒有意義。 「String」類的對象不能是「None」! – zero323