【问题标题】:create a dataframe from dictionary by using RDD in pyspark在 pyspark 中使用 RDD 从字典创建数据框
【发布时间】:2019-02-25 12:36:15
【问题描述】:

我有一本名为“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

【问题讨论】:

    标签: python apache-spark pyspark


    【解决方案1】:

    您可以将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|
    +----------+-----+
    

    【讨论】:

      猜你喜欢
      • 2021-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多