python - 在 pyspark 中使用 RDD 从字典创建数据框
问题描述
我有一本名为“Word_Count”的字典,键代表单词,值代表文本中的数字单词。我的目标是将其转换为具有两列单词和计数的数据框
items = list(Word_Counts.items())[:5]
items
输出:
[('Akdeniz’in', 14), ('en', 13287), ('büyük', 3168), ('deniz', 1276), ('festivali:', 6)]
当我使用 sc.parallelize 建立一个 RDD 时,我意识到它会删除所有值,并且在我创建 table 时只保留键,它只包含来自键。请让我知道如何使用 RDD 从字典中建立数据框
rdd1 = sc.parallelize(Word_Counts)
Df_Hur = spark.read.json(rdd1)
rdd1.take(5)
输出:
['Akdeniz’in', 'en', 'büyük', 'deniz', 'festivali:']
Df_Hur.show(5)
输出:
+---------------+
|_corrupt_record|
+---------------+
| Akdeniz’in|
| en|
| büyük|
| deniz|
| festivali:|
+---------------+
我的目标是:
word count
Akdeniz’in 14
en 13287
büyük 3168
deniz 1276
festivali: 6
解决方案
word_count.items()
您可以直接喂给parallelize
:
df_hur = sc.parallelize(word_count.items()).toDF(['word', 'count'])
df_hur.show()
>>>
+----------+-----+
| word|count|
+----------+-----+
|Akdeniz’in| 14|
| en|13287|
| büyük| 3168|
| deniz| 1276|
|festivali:| 6|
+----------+-----+
推荐阅读
- session - 没有 Cookie / 没有 IP 跟踪访客
- java - sun.security.ssl.Alert.createSSLException 使用 apache commons library 进行 post call
- javascript - ajax 调用会减慢前端的速度吗?
- javascript - 用于 YAML 前端的 Javascript 正则表达式
- python - 启动器中的致命错误:无法使用“”创建进程
- html - 根据该图像坐标将图像放在 VueJS/Vuetify 中的另一个上
- php - 将 id 值提交到购物车页面 php
- c++ - 通过它的模板类重载 C++ 模板类方法
- node.js - Electron - 未捕获的错误:EROFS:只读文件系统
- c# - 我怎样才能钳制旋转?