ソースがGCSに保存されたテキストファイルであるXMLファイルを作成しようとしています。コードは正常に実行されていますが、単一のXMLファイルではなく、複数のXMLファイルを生成しています。 (XMLファイルの数は、ソーステキストファイルに存在するレコードの総数に従うように見えます)。私はこのシナリオを 'DataflowRunner'の使用中に観察しました。Apache Beamを使用してXMLに書き込む際に複数のファイルが生成される
ローカルで同じコードを実行すると、2つのファイルが生成されます。最初の要素は適切な要素を持つすべてのレコードを含み、2番目の要素は開始と終了のルート要素のみを含みます。
この予期しない動作の発生については、何か考えてください。私が使用しているコードスニペットの下に見つけてください:
PCollection<String>input_records=p.apply(TextIO.read().from("gs://balajee_test/xml_source.txt"));
PCollection<XMLFormatter> input_object= input_records.apply(ParDo.of(new DoFn<String,XMLFormatter>(){
@ProcessElement
public void processElement(ProcessContext c)
{
String elements[]=c.element().toString().split(",");
c.output(new XMLFormatter(elements[0],elements[1],elements[2],elements[3],elements[4]));
System.out.println("Values to be written have been provided to constructor ");
}
})).setCoder(AvroCoder.of(XMLFormatter.class));
input_object.apply(XmlIO.<XMLFormatter>write()
.withRecordClass(XMLFormatter.class)
.withRootElement("library")
.to("gs://balajee_test/book_output"));
私は出力で単一のXMLファイル(book_output.xml)を生成する方法を教えてください。次のように
https://issues.apache.org/jira/browse/BEAM-2826 –
同じJIRAリクエストが提出されました。 –