在dataflowpython中连接两个csv数据

2024-05-19 09:35:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个csv文件-我想在数据流中完全连接

我读作PCollection的两个csv文件

csv1型

A | B | C | D | E

csv2型

A | B | C | F | G

我需要根据键A,B加入两个p集合,得到如下所示的p集合

A | B | C | D | E | F | G

试验1

{'left': P_collection_1, 'right': P_collection_2}
            | ' Combine' >> beam.CoGroupByKey()
            | ' ExtractValues' >> beam.Values()

这基本上类似于sql中的完全联接


Tags: 文件csvrightsqlleftcollection数据流beam
1条回答
网友
1楼 · 发布于 2024-05-19 09:35:12

我相信您确实可以使用CoGroupBykey:

Apache Beam Programming guide的电话和电子邮件示例应用到您的案例中,您可以尝试为CoGroupByKey提供一个PCollection“C,D,E”,键入“a,B”和“F,G”的PCollection,同时键入“a,B”

为了更清楚一点,每个PCollection中的元素必须是元组,第一个元素是'a,B'键,第二个元素是'C,D,E'或'F,G'值:

PColl1 = PCollection(
('2,4', '1,2,5'),
('1,10', '4,4,9'),
...) # this is the PCollection of CDE's

PColl2 = PCollection(
('2,4', '30,3'),
('20,1', '2,1'),
...) # this is the PCollection of FG's

(PCollection符号仅用于说明)

然后我们会申请:

^{pr2}$

根据编程指南,结果应为:

^{3}$

如果A和B在同一个文件中多次取值2,4,这应该不是问题,我们应该在CDE或FG中有多个值。在

相关问题 更多 >

    热门问题