sparksql列查询不显示列内容?

ubby3x7f  于 2021-06-01  发布在  Hadoop
关注(0)|答案(2)|浏览(739)

我已经通过 df.saveAsTable 当我运行以下查询时,我会收到这些结果

spark.sql("""SELECT * FROM mytable """).show()

我得到了dataframe及其所有列和所有数据的视图。
但是当我跑的时候

spark.sql("""SELECT 'NameDisplay' FROM mytable """).show()

我收到的结果是这样的

|  NameDisplay|
|--|
| NameDisplay | 
| NameDisplay | 
| NameDisplay | 
| NameDisplay | 
| NameDisplay | 
| NameDisplay |

namedisplay绝对是表中的一列,正如我运行时所显示的那样 select * -为什么在第二个查询中没有显示这一点?

3yhwsihp

3yhwsihp1#

选择 'NameDisplay' ,在sql中,选择文本“namedisplay”。因此,你得到的结果实际上是有效的。
要选择“namedisplay”列的值,则必须发出:

"SELECT NameDisplay FROM mytable "

或者,如果您需要引用它(如果列是这样创建的,或者有空格,或者区分大小写):

"""SELECT `NameDisplay` FROM mytable"""

这是sql语法,没有特定于spark的内容。

xbp102n0

xbp102n02#

问题是在列名上使用引号。需要通过backtick``namediplay转义`

相关问题