1
我想在Spark SQL作業中使用DSL而不是純SQL,但是我無法獲得我的UDF工作。udf在Spark SQL中DSL
sqlContext.udf.register("subdate",(dateTime: Long)=>dateTime.toString.dropRight(6))
這不起作用
rdd1.toDF.join(rdd2.toDF).where("subdate(rdd1(date_time)) === subdate(rdd2(dateTime))")
我還想添加其他參加就像這個工作純粹SQL條件
val results=sqlContext.sql("select * from rdd1 join rdd2 on rdd1.id=rdd2.idand subdate(rdd1.date_time)=subdate(rdd2.dateTime)")
感謝您的幫助
非常感謝。通過編寫內置表達式,你的意思是什麼?從sql.Column包中使用「substr」類似的函數? – vgkowski
或多或少。這裏有一些微妙的東西(並不是每個函數都是用表達式來實現的),但是不要糾纏於此。如果這有幫助,請不要感謝 - 只接受和/或upvote :) – zero323