簡體   English   中英

pyspark:從地圖類型列中選擇帶有特殊字符的列

[英]pyspark : select columns with special characters from map type column

在從數據框中選擇一些列的查詢中,我有一個列類型:map,它具有多個屬性。 我正在嘗試從此列中僅選擇幾個屬性,但這會返回一個錯誤,因為某些屬性包含特殊字符(例如'-'),此列的其他屬性都可以正常工作

例如:

sqlContext.sql("select colA, colB.attribute1 from schema.table")

但是,如果我選擇一個包含-的屬性,它將失敗

sqlContext.sql("select colA, colB.4-TRANSPORT from schema.table")

=>失敗

18/08/29 15:21:34 INFO ParseDriver: Parse Completed
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/hdp/2.5.3.16-1/spark/python/pyspark/sql/context.py", line 580, in sql
    return DataFrame(self._ssql_ctx.sql(sqlQuery), self)
  File "/usr/hdp/2.5.3.16-1/spark/python/lib/py4j-0.9-src.zip/py4j/java_gateway.py", line 813, in __call__
  File "/usr/hdp/2.5.3.16-1/spark/python/pyspark/sql/utils.py", line 51, in deco
    raise AnalysisException(s.split(': ', 1)[1], stackTrace)
pyspark.sql.utils.AnalysisException: u"cannot resolve 'TRANSPORT'

我試過雙引號等等,到目前為止沒有運氣...

反引號將有所幫助。

sqlContext.sql("select colA, colB.`4-TRANSPORT` from schema.table")

根據評論進行了更新。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM