python - 使用 pyspark 中的 RDD 从字典创建数据框

标签 python apache-spark pyspark

我有一个字典,名称为“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 时,我意识到它会删除所有值,并且当我创建表时仅保留键,它仅包含键。请让我知道如何使用 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|
+----------+-----+

关于python - 使用 pyspark 中的 RDD 从字典创建数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54866368/

相关文章:

python - Celery周期性任务: testing by modifying system time

apache-spark - Pyspark 数据帧 : Extract a column based on the value of another column

performance - Spark + Parquet +S3n : Seems to read parquet file many times

python - Spark 中笛卡尔的替代品?

python - 为什么我在 Python 控制台中得到 None 元组的打印,而不是单个 None 的打印?

python - 如果满足条件,Pandas iterrows 无法在迭代期间跳过行

scala - 在 Spark 中获取 DataFrame 列的值

python - 跨组的 Pyspark 示例数据框

java - 使用 .toPandas() 函数时如何修复 Py4JJavaError?

python - Scrapy 管道以正确的格式导出 csv 文件