SparkSQL 列查询不显示列内容?
Posted
技术标签:
【中文标题】SparkSQL 列查询不显示列内容?【英文标题】:SparkSQL Column Query not showing column contents? 【发布时间】:2018-03-27 18:48:48 【问题描述】:我通过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 *
时显示 - 为什么第二个查询中没有显示?
【问题讨论】:
【参考方案1】:问题是在列名上使用引号。需要通过反引号 ``NameDisplay` 进行转义
【讨论】:
【参考方案2】:在 SQL 中选择 'NameDisplay'
是选择文字,文本“NameDisplay”。这样,你得到的结果实际上是有效的。
要选择“NameDisplay”列的值,您必须发出:
"SELECT NameDisplay FROM mytable "
或者,如果您需要引用它(也许列是这样创建的或有空格,或者区分大小写):
"""SELECT `NameDisplay` FROM mytable"""
这是 SQL 语法,与 Spark 无关。
【讨论】:
谢谢!但是我发现双引号也不起作用,我需要通过反引号 ` 转义以上是关于SparkSQL 列查询不显示列内容?的主要内容,如果未能解决你的问题,请参考以下文章
Visual Studio 2015中DataGridView添加列文字显示不出来