我正在尝试将包含多个值的 tablerow 转换为 KV。我可以在 DoFn 中实现这一点,但这会增加我想要进一步编写的代码的复杂性,并使我的工作更加困难。(基本上我需要对tablerow的两个pcollections执行CoGroupBy操作)
有什么方法可以将 PCollection 转换为 PCollection<KV<String, String>>,其中的键和值以与 tablerow 中相同的格式存储?
我写了一个看起来像这样的片段,但这并没有给我想要的结果,有什么方法可以加载 tablerow 中的所有条目并生成具有这些值的 KV?
ImmutableList<TableRow> input = ImmutableList.of(new TableRow().set("val1", "testVal1").set("val2", "testVal2").set("val3", "testVal3");
PCollection<TableRow> inputPC = p.apply(Create.of(input));
inputPC.apply(MapElements.into(TypeDescriptors.kvs(TypeDescriptors.strings(), TypeDescriptors.strings()))
.via(tableRow -> KV.of((String) tableRow.get("val1"), (String) tableRow.get("val2"))));