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

Dar*_*ero 7 apache-spark apache-spark-sql

我们尝试用括号[column name],单引号和双引号以及反引号来包装列名,但它们都不起作用.

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

谢谢!

zer*_*323 34

反引号似乎工作正常:

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  
Run Code Online (Sandbox Code Playgroud)

DataFrameAPI 相同:

scala> df.select($"foo bar").show
foo bar
a   
Run Code Online (Sandbox Code Playgroud)

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


Saa*_*adK 15

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