我正在用scala学习火花,这可能是一个基本问题,但我很挣扎,有人可以帮帮我吗?我有一个scala程序如下:
sqlContext.sql("CREATE TEMPORARY FUNCTION IBECDateAdd AS 'com.my.UDFs.IBECDateAdd'")
sqlContext.sql("set mapred.create.symlink=yes")
sqlContext.sql("set hive.input.format=org.apache.hadoop.hive.ql.io.HiveInputFormat")
sqlContext.sql("use mydb")
val trigdate=sqlContext.sql("""SELECT '2017-04-02'""").first.get(0)
val OUTPUT=sqlContext.sql("""SELECT '/whildpsace/spark/Ankur_op'""").first.get(0)
val COL_DELIM=sqlContext.sql("""SELECT '|'""").first.get(0)
val Step1=sqlContext.sql("""SELECT gmt_dt AS gmt_dt FROM mydb.events WHERE gmt_dt BETWEEN IBECDateAdd('dd', -1, """+trigdate+ """) AND IBECDateAdd('dd', 1, """+trigdate+ """) LIMIT 10""")
Step1.registerTempTable("Step1");
Step1.registerTempTable("Results");
val columns= Results.columns.mkString("COL_DELIM")
val valuesRdd= Results.map(r=>r.mkString("COL_DELIM")).map(a=>(2,a))
val schemaRdd= sc.parallelize(Seq((columns)),1).map(a=>(1,a))
valuesRdd.union(schemaRdd).sortByKey(true, 1).map(x=>x._2).saveAsTextFile("OUTPUT");
在上面的代码中,我无法替换值trigdate,OUTPUT和COL_DELIM。你能告诉我在sql中替换它们的正确方法吗?
谢谢!