Java新手在这里。我正在努力了解如何在Apache Beam管道中使用ParseJsons将字符串PCollection解析为对象PCollection。

我的理解是,我需要首先定义一个与json结构匹配的类,然后使用ParseJsons将json字符串映射到该类的对象中。

但是,ParseJsons文档对我来说似乎很神秘。我不确定如何使用Apache Beam实际执行转换。有人可以给我一个简单而又肮脏的例子来说明如何解析行分隔的json字符串吗?

这是我所做的尝试之一,但不幸的是语法不正确。

class Product {
  private String name = null;
  private String url = null;
}

p.apply("ReadLines", TextIO.read().from(options.getInputFile()))
 .apply(new ParseJsons.of(Product))
 .apply("WriteCounts", TextIO.write().to(options.getOutput()));

最佳答案

我想你要:

PCollectoion<Product> =
  p.apply("ReadLines", TextIO.read().from(options.getInputFile()))
   .apply(new ParseJsons.of(Product.class))
   .setCoder(SerializableCoder.of(MyPojo.class));

08-28 23:49