微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在Code Workbook中将JSON对象列表转换为Spark数据框?

如何解决如何在Code Workbook中将JSON对象列表转换为Spark数据框?

如何将JSON对象列表转换为Spark数据框?

[
  {
    '1': 'A','2': 'B'
  },{
    '1': 'A','3': 'C'
  }
] 

进入

 1     2     3
 A     B     null
 A     null  C

我尝试了spark.read.json(spark.sparkContext.parallelize(d))及其与json.dumps(d)的各种组合。

解决方法

您可以使用spark.createDataFrame(d)获得所需的效果。

您会收到关于从字典推断架构的弃用警告,因此“正确”的方法是首先创建行:

from pyspark.sql import Row
data = [{'1': 'A','2': 'B'},{'1': 'A','3': 'C'}]
schema = ['1','2','3']
rows = []
for d in data:
    dict_for_row = {k: d.get(k,None) for k in schema}
    rows.append(Row(**dict_for_row))

然后创建DataFrame:

df = spark.createDataFrame(row)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。