0

Windows Server にインストールされた Hadoop プラットフォーム (HortonWorks による) に取り組んでおり、Map/Reduce ファイルを C# でコーディングしています。

100k xml ファイルを含む入力フォルダーがあります。各xmlファイルを読み取り、各タグを1行に書き込みたい。以下の例に従ってください。

入力:

<Person>
    <a>1</a>
    <b>2</b>
    <c>3</c>
</Person>

出力 1,2,3 .... ....

現在、データをどのように読み取るべきかについての情報を提供していただけますか。Mapper は、個々のタグを解析することが困難な各ファイルの個別のファイルで提供されます。

4

2 に答える 2

0

mapreduce で xml ファイルを処理するには、XMLInputFormat を調べる必要があると思います。あなたの場合はそれぞれ と になる開始タグと終了タグを指定できます。このXMLInputFormat Linkをご覧ください。各マップ関数内で、単一のレコードとして値(つまり、質問で言及したもの)を取得します。これで、XML DOM パーサー (このリンクXML DOM パーサーの例を確認してください) または XML SAX パーサーXML SAX パーサーの例を使用して、必要な子の値を取得し、それらを最終出力として出力できます。

于 2013-08-05T06:02:42.897 に答える
0

xml ファイルに使用できる組み込みの InputFormat がないため、最初のタスクは、xml ファイルを読み取って MR ジョブにフィードする方法を見つけることです。助けが必要な場合は、これこれを参照してください(個人的にテストしていませんが、私には問題ないようです)。ジョブの構成中に提供された開始タグと終了タグ内のコンテンツをマッパーの値として取得します。必要な値を抽出し、出力を生成します。HTH

于 2013-08-02T19:51:24.087 に答える