Python中的Spark使用元组-加入两个RDD后如何合并两个元组

约翰·马丁内斯

我有点喜欢Spark环境和开发。

我有两个RDD,它们通过连接器合并,该连接器的结果如下:

(u'10611', ((u'Laura', u'Mcgee'), (u'66821', u'COMPLETE')))
(u'4026', ((u'Mary', u'Smith'), (u'3237', u'COMPLETE')))
(u'4026', ((u'Mary', u'Smith'), (u'4847', u'CLOSED')))

如果您看到我有两个元组和一个键,那么我想合并两个元组并将其保留为键和一个元组,如下所示:

(u'10611', (u'Laura', u'Mcgee', u'66821', u'COMPLETE'))
(u'4026', (u'Mary', u'Smith', u'3237', u'COMPLETE'))
(u'4026', (u'Mary', u'Smith', u'4847', u'CLOSED'))

另外,我该如何在saveAsTextFile之前格式化此格式,并用Tab分隔。例子

10611   Laura   Mcgee   66821   COMPLETE
4026    Mary    Smith   3237    COMPLETE
4026    Mary    Smith   4847    CLOSED

我有这样的事情,但不确定如何通过元组访问它:

.map(lambda x: "%s\t%s\t%s\t%s" %(x[0], x[1], x[2], x[3]))
食人魔代码

假设您的数据格式一致,则可以使用简单的加法运算符合并元组。

>>> weird = (u'10611', ((u'Laura', u'Mcgee'), (u'66821', u'COMPLETE')))
>>> weirdMerged = (weird[0], (weird[1][0]+weird[1][1]))
>>> weirdMerged
(u'10611', (u'Laura', u'Mcgee', u'66821', u'COMPLETE'))

输出到文本应该很简单,但是您的奇数球结构也使它有些奇怪。您的lambda不错,但您也可以这样做:

>>> print('\t'.join((weirdMerged[0],)+weirdMerged[1]))
10611   Laura   Mcgee   66821   COMPLETE

我不确定这会好得多,但是可以。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

加入两个元组

来自分类Dev

将RDD中的元组拆分为两个元组

来自分类Dev

如何在scala中合并两个元组?

来自分类Dev

如何在scala中合并两个元组?

来自分类Dev

如何加入两个没有重复的元组列表

来自分类Dev

合并两个元组数组

来自分类Dev

在Python列表中合并每两个元组

来自分类Dev

如何基于键合并两个元组列表?

来自分类Dev

在pyspark中合并两个RDD

来自分类Dev

如何从大量的元组中获得最佳的两个元组

来自分类Dev

如何绑两个元组?

来自分类Dev

从两个列表中制作元组

来自分类Dev

用相同的键合并两个元组

来自分类Dev

用相同的键合并两个元组

来自分类Dev

通过键合并两个元组列表

来自分类Dev

合并两个长度不等的元组列表

来自分类Dev

如何在PySpark中合并并将两个rdd合并为一个

来自分类Dev

如何使用boost元组返回两个向量

来自分类Dev

如何从存储在元组列表列表中的两个元素元组中制作两个列表

来自分类Dev

如何合并两个列表python

来自分类Dev

比较python中两个元组的部分值

来自分类Dev

比较python中两个元组的部分的值

来自分类Dev

如何在f#中将两个不同类型的序列合并为元组?

来自分类Dev

如何合并两个列表以获得包含元组的以下期望结果?

来自分类Dev

如何在 Spark (Scala) 中组合两个 RDD?

来自分类Dev

复制两个不同大小的元组

来自分类Dev

合并来自Spark,Java中元组的两个值的数据

来自分类Dev

如何使用yield将两个列表中按索引的数字连接成一个元组?(Python)

来自分类Dev

如何使用yield将两个列表中按索引的数字连接成一个元组?(Python)