在没有main的情况下从spark scala中的相同程序传递参数

时间:2017-05-25 18:49:16

标签: scala apache-spark-sql

我正在用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中替换它们的正确方法吗?

谢谢!

0 个答案:

没有答案