我有一个元组 RDD。我想分解键值对并保留重复项。本质上是键 x 值。我想将这个 RDD 数组输入到 LDA 模型中。我将在下面说明一些代码,提前谢谢您:
当前状态
>>> rdd4.take(2)
[ [(u'11394071', 1), (u'11052103', 1), (u'11052101', 1)],
[(u'11847272', 2), (u'999999', 1), (u'11847272', 3)] ]
首选状态
>>> rdd4.take(2)
[ ['11394071','11052103','11052101'],
['11847272', '11847272','999999','11847272','11847272','11847272'] ]
最佳答案
不使用列表理解的解决方案,可能更清楚:
import itertools
orig_list = rdd4.take(2)
result = []
for orig_list_item in orig_list:
inner_result = []
for item, count in orig_list_item:
inner_result.append([item] * count)
inner_result = itertools.chain.from_iterable(inner_result)
inner_result = list(inner_result)
result.append(inner_result)
这个解释实际上与我的其他答案中的解释相同。
关于python - PySpark 按值分解键并保留 LDA 模型的重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45467447/