如何在 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.
回答的三重引号
我们已尝试用方括号 [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.