如何解决如何在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 举报,一经查实,本站将立刻删除。