Python2.7:从集合列表创建字典

Python2.7:从集合列表创建字典,python,python-2.7,apache-spark,pyspark,rdd,Python,Python 2.7,Apache Spark,Pyspark,Rdd,在执行一些操作后,我得到一个列表的集合,如下所示: from pyspark.mllib.fpm import FPGrowth FreqItemset(items=[u'A_String_0'], freq=303) FreqItemset(items=[u'A_String_0', u'Another_String_1'], freq=302) FreqItemset(items=[u'B_String_1', u'A_String_0', u'A_OtherString_1'], fre

在执行一些操作后,我得到一个
列表
集合
,如下所示:

from pyspark.mllib.fpm import FPGrowth

FreqItemset(items=[u'A_String_0'], freq=303)
FreqItemset(items=[u'A_String_0', u'Another_String_1'], freq=302)
FreqItemset(items=[u'B_String_1', u'A_String_0', u'A_OtherString_1'], freq=301)
我想从这个列表中创建:

  • RDD

  • 例如,字典:

    key: A_String_0 value: 303
    key: A_String_0,Another_String_1 value: 302
    key: B_String_1,A_String_0,A_OtherString_1 value: 301
    
  • 我想继续计算,以产生信心和提升

    我尝试执行
    for
    循环,从列表中获取每个项目

    问题是这里是否有其他更好的方法来创建rdd和/或列表

    先谢谢你

  • 如果您想要一个
    RDD
    只需不收集
    frequeitemsets

    model = FPGrowth.train(transactions, minSupport=0.2, numPartitions=10)
    freqItemsets = model.freqItemsets()
    
    当然,您可以
    并行化

    结果=model.freqItemsets().collect() sc.parallelize(结果)

  • 我不知道你为什么需要这个(它看起来像一个 但您可以对收集的数据进行理解:

    {tuple(x.items): x.freq for x in result}
    

  • 一般来说,如果您想对数据应用进一步的转换,请不要直接在Spark中收集和处理数据


    您还应该看看Scala API。它已经实现了。

    a)如果您需要RDD,为什么首先要收集b)字典中的键类应该是什么?您确定字典适合您的主节点吗?关于collect()的好提示,我忘了。我不确定我是否明白我的第二条评论是计算MBA。增长是第一步。我将计算信心并在之后提升,因此我需要访问FPGrowth的输出。这就是原因。我想如何访问这些项目以进行进一步计算。非常感谢你的帮助!目前,我从Spark和PySpark开始学习,我也了解到必须学习scala:(
    {",".join(x.items): x.freq for x in result}