【问题标题】:SparkSQL Column Query not showing column contents?SparkSQL 列查询不显示列内容?
【发布时间】: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 * 时显示 - 为什么第二个查询中没有显示?

【问题讨论】:

    标签: apache-spark hadoop pyspark apache-spark-sql azure-hdinsight


    【解决方案1】:

    问题是在列名上使用引号。需要通过反引号 ``NameDisplay` 进行转义

    【讨论】:

      【解决方案2】:

      在 SQL 中选择 'NameDisplay' 是选择文字,文本“NameDisplay”。这样,你得到的结果实际上是有效的。

      要选择“NameDisplay”列的值,您必须发出:

      "SELECT NameDisplay FROM mytable "
      

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

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

      这是 SQL 语法,与 Spark 无关。

      【讨论】:

      • 谢谢!但是我发现双引号也不起作用,我需要通过反引号 ` 转义
      猜你喜欢
      • 2014-10-28
      • 2023-03-22
      • 2013-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-01
      • 2014-04-27
      • 1970-01-01
      相关资源
      最近更新 更多