火花SQL错误:NoViableAltException(307 @ [147:1:selectExpression:(expression | tableAllColumns);])

时间:2018-10-09 19:27:57

标签: sql-server hive apache-spark-sql

我有一种情况,我将从配置单元列中获取查询作为文本。我应该通过连接到源系统来获取该查询的行数。

下面是我的代码(注意:其中包含一些case语句和for循环。我粘贴了简化形式的代码)

val tableResult = sqlContext.sql(s"select param_id,db_validation,type,src_dbtype,src_hostname,src_dbname,src_schema,src_tables,src_query from hivedb.db_vld_param1 where db_validation = 'Y' and param_id in (1300)")
val rdd= tableResult.collect()
val src_query= rdd(0).getString(8)  // (my query is SELECT * FROM Schema.Table WHERE Primarykey = 1139)
 val connectionString= "jdbc:sqlserver://hostname;database=DB;user=USER;password=PSWD"
 val count_df= sqlContext.read.format("jdbc").option("url",(s"$connectionString")).option("dbtable",(s"""(SELECT count(*) row_count from (${src_query})a ) as temp""")).option("driver","com.microsoft.sqlserver.jdbc.SQLServerDriver").load()

但是我遇到了错误

  

NoViableAltException(307 @ [147:1:selectExpression:(expression |   tableAllColumns);])org.apache.spark.sql.AnalysisException:无法   在's'''SELECT * FROM Schema.Table WHERE主键附近识别输入   在选择表达式中= 1139''',';第1行pos 19

但是当我从终端通过命令执行代码命令时,它工作正常。 有人知道什么时候出现这种错误。

0 个答案:

没有答案