所以我在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如果您需要任何其他信息,请告诉我。
简单的工作示例。不确定这是否是您所需要的:
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 |
+----+---+