【发布时间】:2017-12-10 19:32:37
【问题描述】:
response = "mi_or_chd_5"
outcome = sqlc.sql("""select eid,{response} as response
from outcomes
where {response} IS NOT NULL""".format(response=response))
outcome.write.parquet(response, mode="overwrite") # Success
print outcome.schema
StructType(List(StructField(eid,IntegerType,true),StructField(response,ShortType,true)))
然后:
outcome2 = sqlc.read.parquet(response) # fail
失败:
AnalysisException: u'Unable to infer schema for Parquet. It must be specified manually.;'
在
/usr/local/lib/python2.7/dist-packages/pyspark-2.1.0+hadoop2.7-py2.7.egg/pyspark/sql/utils.pyc in deco(*a, **kw)
parquet 的文档说格式是自我描述的,保存 parquet 文件时可以使用完整的架构。什么给了?
使用 Spark 2.1.1。在 2.2.0 中也失败了。
找到this bug report,但已修复 2.0.1、2.1.0。
更新:当连接到 master="local" 时可以工作,连接到 master="mysparkcluster" 时会失败。
【问题讨论】:
标签: apache-spark pyspark parquet