展平长度未知的元组

米哈尔

加入后,我有一个由Spark生成的元组。它有一个键,一个元组中有两列,然后是第二个表中的其余列。我不一定知道第二张表中有多少列。

因此,例如:

(2324234534, (('23213','2013/03/02'), 12.32, 32.4, 45))

如果在zip后面有一列,那么我已经能够分隔元组,在PySpark中这样的日期元组是这样的:

x.map(lambda p: (p[0], (p[1][0][0], p[1][0][1], p[1][1])))

在Python中:

map(lambda p: (p[0], (p[1][0][0], p[1][0][1], p[1][1])), x)

这将产生我正在寻找的输出:

(2324234534, ('23213','2013/03/02', 12.32))

如果我想在邮编后加上多个栏,请注明日期,然后输入以下代码:

x.map(lambda p: (p[0], (p[1][0][0], p[1][0][1], p[1][1:])))

但是,它产生以下输出:

(2324234534, ('23213','2013/03/02', (12.32, 32.4, 45)))

无论哪种方式,我当前的方法都是很棘手的,不会产生我想要的结果。我可能对学习如何扁平化元组感兴趣(我在该主题上发现的其他线程将元组转换为列表,而不是我所寻找的100%)

约翰1024

如果我正确理解了您的目标,我相信这可以满足您的要求:

In [11]: a = (2324234534, (('23213','2013/03/02'), 12.32, 32.4, 45))

In [12]: a[:1] + (a[1][0] + a[1][1:],)
Out[12]: (2324234534, ('23213', '2013/03/02', 12.32, 32.4, 45))

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章