为了简单起见,假设我有一个只有两行的小语料库。你知道吗
'This is first'
'This is second'
为了将其用于我的reduceByKey spark方法,我需要有以下输出:
[((u'This', u'is'), 1), ((u'is', u'first.'), 1), ((u'This', u'is'), 1), ((u'is', u'second.'), 1)]
但是对于我在下面编写的代码,我采用了以下格式(更多列表)。检查我的愿望解决方案是否在一个“列表”中,但我得到的输出有更多(取决于我每句话的字数)
[[((u'This', u'is'), 1), ((u'This', u'first.'), 1)], [((u'is', u'first.'), 1)], [((u'This', u'is'), 1), ((u'This', u'second.'), 1)], [((u'is', u'second.'), 1)]]
如何修改这个以得到我想要的。你知道吗
couples = lines.map(lambda s : s.split(" ")).flatMap(lambda s: [[((s[i],s[j]), 1) for j in range(i+1 , len(s))] for i in range(len(s)-1) ])
如果有人不知道pyspark,但是很好的python,我想修改这部分:
lambda s: [[((s[i],s[j]), 1) for j in range(i+1 , len(s))] for i in range(len(s)-1) ]
提前谢谢
在python中,没有返回值扩展。这意味着您需要显式地写出返回值。这意味着lambda必须返回一个列表。名单扁平化必须在外面处理。它可以以不同的方式实现。例如
相关问题 更多 >
编程相关推荐