【发布时间】:2017-11-03 16:25:23
【问题描述】:
使用 PySpark,我正在尝试将嵌套字典的 RDD 转换为数据框,但我在某些设置为 null 的字段中丢失了数据。
代码如下:
sc = SparkContext()
sqlContext = SQLContext(sc)
def convert_to_row(d):
return Row(**d)
df2 = sc.parallelize([{"id": "14yy74hwogxoyl2l3v", "geoloc": {"country": {"geoname_id": 3017382, "iso_code": "FR", "name": "France"}}}]).map(convert_to_row).toDF()
df2.printSchema()
df2.show()
df2.toJSON().saveAsTextFile("/tmp/json.test")
当我查看 /tmp/json.test 时,内容如下(手动缩进后):
{
"geoloc": {
"country": {
"name": null,
"iso_code": null,
"geoname_id": 3017382
}
},
"id": "14yy74hwogxoyl2l3v"
}
iso_code 和 name 已转换为 null。
有人可以帮我吗?看不懂。
我正在使用 Python 2.7 和 Spark 2.0.0
谢谢!
【问题讨论】:
-
感谢您以严谨且可重复的方式提出您的第一个 SO 问题(不幸的是,对于新用户来说这很不寻常)。继续接受和支持好的答案(这会占用受访者的宝贵时间)...
标签: python apache-spark pyspark apache-spark-sql