【发布时间】:2018-06-06 05:26:12
【问题描述】:
我无法理解 Apache Beam 中的连接(例如 http://www.waitingforcode.com/apache-beam/joins-apache-beam/read)是否可以连接整行。
例如:
我有 2 个 CSV 格式的数据集,其中第一行是列标题。
第一个:
a,b,c,d
1,2,3,4
5,6,7,8
1,2,5,4
第二个:
c,d,e,f
3,4,9,10
我想在列 c 和 d 上左连接,这样我最终得到:
a,b,c,d,e,f
1,2,3,4,9,10
5,6,7,8,,
1,2,5,4,,
然而,Apache Beam 上的所有文档似乎都说 PCollection 对象在加入时需要是 KV<K, V> 类型,所以我将 PCollection 对象分解为 KV<String, String> 对象的集合(其中关键是列标题,值为行值)。但在那种情况下(你只有一个带值的键)我看不到如何维护行格式。 KV(c,7) 如何“知道” KV(a,5) 来自同一行? Join 是不是专门针对这种事情的?
到目前为止我的代码:
PCollection<KV<String, String>> flightOutput = ...;
PCollection<KV<String, String>> arrivalWeatherDataForJoin = ...;
PCollection<KV<String, KV<String, String>>> output = Join.leftOuterJoin(flightOutput, arrivalWeatherDataForJoin, "");
【问题讨论】:
标签: java apache-beam