2017-08-30 8 views
0

誰もこのコードを試したことがありますか?GCSバケットに格納されたXMLファイルを読み込むためにXmlSourceを使用できません

XmlSource<String> source = XmlSource.<String>from("gs://balajee_test/sample_3.xml") 
       .withRootElement("book") 
       .withRecordElement("author") 
       .withRecordElement("title") 
       .withRecordElement("genre") 
       .withRecordElement("price") 
       .withRecordElement("description") 
       .withRecordClass(XMLFormatter.class); 

PCollection<String> output = p.apply(Read.from(source)); 

https://beam.apache.org/documentation/sdks/javadoc/0.4.0/org/apache/beam/sdk/io/XmlSource.html

org.apache.beam.sdk.io.xml.XmlSource

私は正しい 'XmlSource' クラスを使用したが、まだ解決できていないよ希望メソッドの依存関係をfrom( "gs://balajee_test/sample_3.xml") 'に変更し、コンパイルエラーを取得しました。エラーメッセージは次のとおりです。

(文字列)からメソッドの型がXmlSource

のためにこの質問はあまりにも愚かに行くかもしれませんが、私は本当にそれを読むことができるようにするために解決を取得する必要が定義されていませんXMLファイルはGCSバケットに格納されています。

+0

beam.apache.org/documentation/sdks/javadoc/2.0.0あなたはSDKのバージョンは何を使用していますか?これらのドキュメントは非常に古いバージョン用です(.4)。現在のバージョンは2.1です。新しいバージョンのSDKを使用している場合は、次のようにします:https://beam.apache.org/documentation/sdks/javadoc/2.1.0/ また、2つの 'froms'よくそれは意図されていますか?古いSDKを使用している場合は問題になる可能性があります。 –

+0

すみません。それらの2つの 'froms'は意図されていませんでした。誤ってこのクエリを投稿しているときに、同じ 'from'ステートメントを2回コピーしました。私は2.0バージョンを使用しています。これは問題ですか? –

+0

XMLソースのAPIが2.0バージョンで変更されました。私はその特定のバージョンの新しいドキュメントを使用しようとします。 https://beam.apache.org/documentation/sdks/javadoc/2.0.0/ org.apache.beam.sdk.io.xmlを探してXMLソースを見ることができます –

答えて

0

コメントから、SDKが2.0であり、XMLからの読み取りを定義する新しい方法があるようです。読む方法については、新しい文書をチェックしてください。 (2.0.0用)

SDK IOドキュメントはここで見つけることができます:

+0

こんにちはララ、私はこのように思っていましたあなたが紹介したリンクが既に私を困惑させてしまったので、救助に来てください。コードは正常に実行されていますが、対応するXML要素の値がマップされていない理由はありません。すべてのコンポーネント値として 'null'が返されます。詳細については、リンクをたどってください:https://stackoverflow.com/questions/45933068/unable-to-read-xml-file-stored-in-gcs-bucket –

+0

これは別の質問ですよね?建物ではないというこの問題とは別に? –

+0

まさに!!!これはあなたが私に与えた解決策に関する質問です。私はすでにそれを試し、上記の問題に直面しています。それを調べて、「ヌル」値の問題を解決するための推奨事項をいくつか教えてください。 –

関連する問題