gpt4 book ai didi

python - 在 PySpark 中展平 RDD

转载 作者:太空宇宙 更新时间:2023-11-04 03:30:04 24 4
gpt4 key购买 nike

我正在尝试使用 PySpark 处理数据。以下是我的示例代码:

rdd = sc.parallelize([[u'9', u'9', u'HF', u'63300001', u'IN HF', u'03/09/2004', u'9', u'HF'], [u'10', u'10', u'HF', u'63300001', u'IN HF', u'03/09/2004', u'9', u'HF']]) 

out = rdd.map(lambda l : (l[0:3],str(l[3]).zfill(8)[:4],l[4:]))

out.take(2)

[([u'9', u'9', u'HF'], '6330', [u'IN HF', u'03/09/2004', u'9', u'HF']), ([u'10', u'10', u'HF'], '6330', [u'IN HF', u'03/09/2004', u'9', u'HF'])]

expected output:
[[u'9', u'9', u'HF', '6330', u'IN HF', u'03/09/2004', u'9', u'HF'], [u'10', u'10', u'HF', '6330', u'IN HF', u'03/09/2004', u'9', u'HF']]

有什么方法可以在 spark 中展平 RDD 吗?

最佳答案

您在这里不需要任何特定于 Spark 的内容。这样的事情应该绰绰有余:

out = rdd.map(lambda l : (l[0:3] + [str(l[3]).zfill(8)[:4]] + l[4:])

不过,lambda 内部的解构可能更具可读性。我的意思是这样的:

rdd = sc.parallelize([(1, 2, 3), (4, 5, 6)])
rdd.map(lambda (x, y, z): (x, str(y).zfill(8), z))

关于python - 在 PySpark 中展平 RDD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31404672/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com