如何在 Spark SQL 中表示名称中包含空格的列?

How to express a column which name contains spaces in Spark SQL?

我们已尝试用方括号 [column name]、单引号和双引号以及反引号将列名括起来,其中 none 有效。

Spark SQL 是否支持名称包含空格的列?

反引号似乎工作得很好:

scala> val df = sc.parallelize(Seq(("a", 1))).toDF("foo bar", "x")
df: org.apache.spark.sql.DataFrame = [foo bar: string, x: int]
scala> df.registerTempTable("df")

scala> sqlContext.sql("""SELECT `foo bar` FROM df""").show
foo bar
a  

DataFrame相同API:

scala> df.select($"foo bar").show
foo bar
a   

所以看起来是支持的,虽然我怀疑不推荐。

而不是像 T-SQL [column name] 那样使用方括号 反引号 来包裹列名 `column name`。这是你 运行 SQL 的时候。您还在 spark SQL 中使用反引号来包装列名,但使用 zero323.

回答的三重引号