Apache beam java sdk支持读取大型xml输入文件,使用org.apache.beam.sdk.io.xml.XmlIO(我查看了2.1.0版本)
有没有人知道Scio是否允许您这样做或有示例?我有一组非常大的xml文件,我想处理它。
答案 0 :(得分:2)
您可以使用自定义输入转换对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)
有关详细信息,请参阅Apache Beam Java SDK参考中的XmlIO.Read
部分:https://beam.apache.org/documentation/sdks/javadoc/2.2.0/