繁体   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