将 pyspark 数据框转换为 python 字典列表

Posted

技术标签:

【中文标题】将 pyspark 数据框转换为 python 字典列表【英文标题】:Convert pyspark dataframe into list of python dictionaries 【发布时间】:2020-11-29 12:19:06 【问题描述】:

您好,我是 pyspark 的新手,我正在尝试将 pyspark.sql.dataframe 转换为字典列表。

下面是我的dataframe,类型是:

+------------------+----------+------------------------+
|             title|imdb_score|Worldwide_Gross(dollars)|
+------------------+----------+------------------------+
| The Eight Hundred|       7.2|               460699653|
| Bad Boys for Life|       6.6|               426505244|
|             Tenet|       7.8|               334000000|
|Sonic the Hedgehog|       6.5|               308439401|
|          Dolittle|       5.6|               245229088|
+------------------+----------+------------------------+

我想把它转换成:

["title":"The Eight Hundred", "imdb_score":7.2, "Worldwide_Gross(dollars)":460699653,
 "title":"Bad Boys for Life", "imdb_score":6.6, "Worldwide_Gross(dollars)":426505244,
 "title":"Tenet", "imdb_score":7.8, "Worldwide_Gross(dollars)":334000000,
 "title":"Sonic the Hedgehog", "imdb_score":6.5, "Worldwide_Gross(dollars)":308439401,
 "title":"Dolittle", "imdb_score":5.6, "Worldwide_Gross(dollars)":245229088]

我应该怎么做?提前致谢!

【问题讨论】:

【参考方案1】:

您可以将每一行映射到字典中并收集结果:

df.rdd.map(lambda row: row.asDict()).collect()

【讨论】:

以上是关于将 pyspark 数据框转换为 python 字典列表的主要内容,如果未能解决你的问题,请参考以下文章

有没有更快的方法将一列 pyspark 数据框转换为 python 列表? (Collect() 非常慢)

需要在pyspark中将列表转换为数据框

如何使用pyspark将具有多个可能值的Json数组列表转换为数据框中的列

Pyspark 将 json 数组转换为数据帧行

将列表转换为 pyspark 数据框

将矩阵转换为 Pyspark 数据框