org.apache.spark.sql.AnalysisException:无法解析给定输入列的“ AB”:无法解析Spark SQL查询中的变量

时间:2019-03-13 14:08:54

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

所以我在Scala中使用spark SQL API。我在查询中使用了一个变量。 下面是代码片段。 DF2_VIEW是为数据框创建的视图。

val x = 'AB'

val newDf = spark.sql(s"""select * from GLOBAL_TEMP.DF2_VIEW
             WHERE $x = SOME_FIELD_IN_DF2_VIEW""")

它向我显示错误

Exception in thread "main" org.apache.spark.sql.AnalysisException: cannot 
resolve '`AB`' given input columns: [COLUMNS NAMES IN DF2_VIEW]

我正在使用Spark 2.2,scala 2.11.8 让我知道您是否需要其他信息。

1 个答案:

答案 0 :(得分:0)

简单的工作示例。不确定这是否是您所需要的:

val df = Seq(("Amy",20),("Tom",18)).toDF("Name","Age")
df.show()

val x = "Amy"

df.createOrReplaceTempView("DF2_VIEW")
val qry = s"""select * from DF2_VIEW where '${x}' = Name"""
spark.sql(qry).show(false)

Output:

+----+---+
|Name|Age|
+----+---+
|Amy |20 |
+----+---+