通过将键作为列将json字典转换为spark数据帧

2024-09-26 22:49:56 发布

您现在位置:Python中文网/ 问答频道 /正文

是否可以通过将键作为具有以下值的列来将字典转换为数据帧

我将api中的结果集作为字典:

{
'information': [{
    'created': '2020-10-26T00:00:00+00:00',
    'title': 'Random1',
    'published': 'YES',
}, {
    'created': '2020-11-06T00:00:00+00:00',
    'title': 'Random2',
    'published': 'YES',
}, {
    'created': '2020-10-27T00:00:00+00:00',
    'title': 'Random3',
    'published': 'YES',
}, {
    'created': '2020-10-29T00:00:00+00:00',
    'title': 'Random4',
    'published': 'YES',
}]
}

如果我将其转换为如下数据帧:

json_rdd=sc.parallelize([data_dict['information']])
spark_df = spark.createDataFrame(json_rdd)
spark_df.createOrReplaceTempView("data_df");

这给了我列为_1、_2、_3、_4,其中的数据仍然显示为对象

是否可以让data_df(转换数据框)将列显示为已创建、标题、已发布,并将相应列中的值显示为平面


Tags: 数据apijsondfdata字典informationtitle
1条回答
网友
1楼 · 发布于 2024-09-26 22:49:56

您可以直接使用字典创建数据帧,而无需将其转换为rdd

arr = your_dict_here
spark.createDataFrame(arr['information']).show()

输出:

+          +    -+   -+
|             created|published|  title|
+          +    -+   -+
|2020-10-26T00:00:...|      YES|Random1|
|2020-11-06T00:00:...|      YES|Random2|
|2020-10-27T00:00:...|      YES|Random3|
|2020-10-29T00:00:...|      YES|Random4|
+          +    -+   -+

相关问题 更多 >

    热门问题