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}