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