2017-03-16 59 views
-2

我做了一些加入操作和我得到的结果作为波纹管PySpark开箱元组

[(u'20', (u'bbb', 4500)), (u'10', (u'aaa', 3500)), (u'30', (u'ccc', 7500))] 

现在我需要将其转换为波纹管。如何做到这一点

[(u'20', u'bbb', 4500), (u'10', u'aaa', 3500), (u'30', u'ccc', 7500)] 
+0

你尝试过什么吗? – mtoto

+0

@mtoto - 得到了预期中的一个,如果你认为这比这个更好,让我知道。 –

回答

0
>>> example = [(u'20', (u'bbb', 4500)), (u'10', (u'aaa', 3500)), (u'30', (u'ccc', 7500))] 
>>> [tuple(x[:1]) + (x[1]) for x in example] 

结果

[(u'20', u'bbb', 4500), (u'10', u'aaa', 3500), (u'30', u'ccc', 7500)] 
+1

这不是PySpark解决方案,而是普通的Python。加入后你没有RDD吗?如果是的话,你应该这样做:'rdd.map(lambda x:(x [0],x [1] [0],x [1] [1]))。collect()' – Jaco

+0

@jaco - My不好。你是对的。我错过了提及这一点。 在[例如对于x有[tuple(x [:1])+(x [1])]之前,我对我的数据做了collect()。 –