如果没有编写自己的函数,那么在数据流2.x管道中将TableRow
对象转换为JSON格式的字符串的最简单方法是什么?
我认为下面的代码可行,但它不能在键/值之间正确插入引号,尤其是在有嵌套字段的情况下。
public static class TableRowToString extends DoFn<TableRow, String> {
private static final long serialVersionUID = 1L;
@ProcessElement
public void processElement(ProcessContext c) {
c.output(c.element().toString());
}
}
}
答案 0 :(得分:3)
我遇到了同样的问题,我使用org.apache.beam.sdk.extensions.jackson.AsJsons解决了。
要使用它,不必创建新的变换,可以将其直接应用到管道中。
Option Explicit
Public Sub SelectDropdown()
Dim driver As New ChromeDriver
With driver
.get "https://www.amazon.com/dp/B071V5DQ56/"
.FindElementByCss("#nav-packard-glow-loc-icon", timeout:=5000).Click
.FindElementByCss("#GLUXCountryListDropdown", timeout:=5000).Click
.FindElementById("GLUXCountryList", timeout:=5000).AsSelect.SelectByText "Canada"
Application.Wait Now + TimeSerial(0, 0, 1)
.FindElementByCss("[data-action='a-popover-close']", timeout:=5000).Click
End With
End Sub
如果您正在使用Maven管理项目,则可以将其添加到import org.apache.beam.sdk.extensions.jackson.AsJsons;
Pipeline p = Pipeline.create(options);
p.apply("The transform that returns a PCollection of TableRow")
.apply("JSon Transform", AsJsons.of(TableRow.class));
文件中的<dependencies>
pom.xml