如何使用SQL语句中使用的参数提交Spark SQL应用程序?

时间:2017-02-08 21:10:34

标签: scala apache-spark apache-spark-sql

我想创建一个包含多个SQL语句的Scala文件,每个语句都有很少的参数。我想使用shell文件以编程方式执行/提交该文件。

import org.apache.spark.sql.hive.HiveContext;
val sqlContext = new HiveContext(sc);
val total=sqlContext.sql(s"select sum(amount) from table1 where location=$loc_var");

2 个答案:

答案 0 :(得分:0)

使用scopt进行命令行参数处理,并在Scala应用程序中使用它们,例如: function accessAPI(access_token, callback, inputJSON, url, repeat){ if(repeat==0){ accessAPI_Execute(); }else{ setInterval(accessAPI_Execute, repeat*1000)}; //local function for setInterval() control function accessAPI_Execute(){ //console.log("sending request..."); $.ajax({ type: 'GET', url: url, beforeSend: function(xhr) { xhr.setRequestHeader("Authorization", access_token.token_type + " " + access_token.access_token); }, data: inputJSON, success: callback }) }; };

答案 1 :(得分:0)

如果我正确理解了您的问题,您可以使用字符串连接附加输入参数。

//Capture input argument inside scala file
val loc_var = args(0)

val total=sqlContext.sql("select sum(amount) from table1 where location='"+loc_var+"'");