1

Apache beam java sdk 支持读取大型 xml 输入文件,带有 org.apache.beam.sdk.io.xml.XmlIO(我查看了 2.1.0 版本)

有谁知道 Scio 是否允许你做同样的事情或有一个例子?我有一组非常大的 xml 文件要处理。

4

1 回答 1

3

您可以通过使用自定义输入转换对 Scio 执行此操作。通常,您需要对没有本机 Scio 界面的任何输入源执行此操作。

例子:

import org.apache.beam.sdk.io.xml._


val xmlInputTransform = XmlIO.read()
  .from("file or pattern spec")         // TODO: specify file name or Java "glob" file pattern to read multiple XML files
  .withRootElement("root element")      // TODO: specify name of root element
  .withRecordElement("record element")  // TODO: specify name of record element
  .withRecordClass(classOf[Record])     // TODO: Define JAXB annotated Record class

// xmls is an SCollection[Record]
val xmls = sc.customInput("fromXML", xmlInputTransform)

有关详细信息,请参阅XmlIO.ReadApache Beam Java SDK 参考中的部分:https ://beam.apache.org/documentation/sdks/javadoc/2.2.0/

于 2017-12-12T16:03:59.267 回答