0

索引付けのために LucidWorks ビッグデータにフィードされるデータに対して前処理を行おうとしています。LWBD は、Sequencefile ファイルの形式で SolrXML を受け入れます。ディレクトリ内のすべての SolrXML ファイルを取得し、それらを次の形式で出力する Pig スクリプトを作成したいと考えています。

filename_1 => <here goes some XML>
...
filename_N => <here goes some more XML>

Pig のネイティブPigStorage()ロード関数は、データが抽出されたファイルの名前を含む列を自動的に作成できます。理想的には次のようになります。

{"filename_1", "<here goes some XML>"}
...
{"filename_N", "<here goes some more XML>"}

ただし、PigStorage() は自動的に '\n' を行区切り文字として使用するため、実際には次のようなバッグになります。

{"filename_1", "<some partial XML from file 1>"}
{"filename_1", "<some more partial XML from file 1>"}
{"filename_1", "<the end of file 1>"}
...

私はあなたが絵を手に入れると確信しています。私の質問は、このバッグを SequenceFile に書き込むとしたら、他のアプリケーションはどのように読み取るのでしょうか? として組み合わせることができますか?

"filename_1" => "<some partial XML from file 1>
                 <some more partial XML from file 1>
                 <the end of file 1>"

、私がそれをフィードするアプリケーションのデフォルトの処理によって?または、この形式にするためにできる後処理はありますか? ご協力ありがとうございました。

4

1 に答える 1