ошибка SQL sql: NoViableAltException (307 @ [147: 1: selectExpression: (выражение | tableAllColumns);]) - PullRequest
0 голосов
/ 09 октября 2018

У меня есть сценарий, в котором я получу запрос из столбца улья в виде текста.Я должен получить количество строк этого запроса, подключившись к исходной системе.

ниже мой код (Примечание: есть некоторые операторы case и для циклов. Я вставил упрощенную форму кода)

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 Primarykey = 1139 '' ',' в выражении выбора;строка 1 поз 19

Но когда я выполняю команду кода командой из терминала, она работает нормально.Кто-нибудь имеет представление о том, когда мы получаем такой тип ошибки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...