我有一个具有以下结构的rdd: [int,[list]]
In [109]: rdd_dummies2.take(2)
[[0, [False, False, False, False, False, False, False, False, False, False]],
[1, [False, False, False, False, False, False, False, False, False, False]]]
我想在同一个列表中使用另一个带有int和列表的rdd。 我的意思是,像这样:
[[0,False, False, False, False, False, False, False, False, False, False],
[1,False, False, False, False, False, False, False, False, False, False]]
我试过了:
In [110]: rdd_dummies2 = rdd_dummies.flatMap(lambda x: x)
In [112]: rdd_dummies2.take(2)
Out[112]: [0, [False, False, False, False, False, False, False, False, False, False]]
但它并没有归还我想要的东西。
有人知道如何正确使用.map()或.flatMap()吗?
谢谢!
答案 0 :(得分:0)
您只需要映射rdd
并将第一个元素添加到列表中:
rdd = sc.parallelize([[0, [False, False, False, False, False, False, False, False, False, False]], [1, [False, False, False, False, False, False, False, False, False, False]]])
rdd.map(lambda x: [x[0]] + x[1]).collect()
# [[0, False, False, False, False, False, False, False, False, False, False],
# [1, False, False, False, False, False, False, False, False, False, False]]