Pyspark - 在列表的spark数据帧列上使用reducebykey

时间:2017-06-06 13:51:13

标签: pyspark spark-dataframe rdd

所以我有一个名为ngram_df的火花数据框看起来像这样

--------------------------------
 Name   | nGrams               |
--------|--------------------- |  
 Alice  | [ALI, LIC, ICE]      |
 Alicia | [ALI, LIC, ICI, CIA] |
--------------------------------

我希望以字典形式生成输出,例如:

  

ALI:2,LIC:2,ICE:1,ICI:1,CIA:1

我一直试图将nGrams列变成RDD,以便我可以使用reduceByKey函数

rdd = ngram_df.map(lambda row: row['nGrams'])
test = rdd.reduceByKey(add).collect()

然而我收到错误:

  

ValueError:要解压缩的值太多

在我收到错误时,即使使用flatmap也没有帮助:

  

ValueError:解包需要多于1个值

1 个答案:

答案 0 :(得分:0)

这可以通过flatMap和reduceByKey方法的组合实现。

to_char