在PCollection中为每个元素添加标签

时间:2018-08-26 12:45:02

标签: python google-cloud-dataflow

好的,所以我已经对Apache Beam狂打了几周。我正在学习,但是请继续坚持看似微不足道的内容。我在两个单独的CSV文件中大约有6000万行数据。这些行由整数和浮点数组成。我会问我的问题,但是我认为这提供了它是一个更大过程的一部分的上下文,这将对我有所帮助。

PCollection中的每一行在读入后如下所示: '11139422、11139421、11139487、11139449、11139477、27500、60.75、60.75、60.75'

我首先将其转换为如下形式: '11139422','11139421','11139487','11139449','11139477','27500','60.75','60.75','60.75'

然后我想创建将每个值变成一个元组对,以便添加值。例如,我希望它对于PCollection中的每一行都是这样的: (p1,11139422),(p2,11139421),(p3,11139487),(p4,11139449),(p5,11139477),(sal,27500),(fp,60.75),(bp,60.75),(pp ,60.75)

如果我了解如何使并行处理有效执行,我想我应该将每一行变成带有某种哈希键的字典:some_hashed_key:(从上面收集元组值)。下一步,我还没有完成任何工作,因为我目前停留在这里。我的下一步是基本上在两个PCollection之间执行笛卡尔乘积。两者的格式几乎都与上面完全相同。我的计划是将左侧PCollection的每个词典键广播到右侧PCollection的每个词典键,在PCollection之间添加一些值,然后将其平整为一个PCollection并发送到Pub / Sub队列。同样,我只是提供上下文,而不是让任何人为我编写该代码,谢谢!

1 个答案:

答案 0 :(得分:0)

太幸运了!我在这里找到了答案:

How to convert csv into a dictionary in apache beam dataflow

因此,不需要任何转换,它是一个内置函数,在读入时会自动附加key:value对。希望有人偶然发现这篇文章,让他们的生活和我一样好!