好的,所以我已经对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队列。同样,我只是提供上下文,而不是让任何人为我编写该代码,谢谢!
答案 0 :(得分:0)
太幸运了!我在这里找到了答案:
How to convert csv into a dictionary in apache beam dataflow
因此,不需要任何转换,它是一个内置函数,在读入时会自动附加key:value对。希望有人偶然发现这篇文章,让他们的生活和我一样好!