Asakusa Framework Advent Calendar 2014の18日目です。
AsakusaFWはバッチアプリケーションを作成するのに使います。
バッチということは、基本的に入力データは整形されている想定です。(CSVファイルやTSVファイルで、カラム数がきっちり決まっている)
しかし一方、他システムからの入力データを扱うような場合、必ずしもそこまできっちりしているとは限りませんorz
よほど変化が大きいと対応は難しい(面倒)ですが、単なるテキストとして読み込めれば何とかなる、という事もあります。
そこで、(CSVやTSVでなく)ベタのテキストとして読み込むImpoterの作り方を書いてみました。
Direct I/O用、つまりHDFSからテキストファイルを読み込むものです。
ファイルをブロック毎に分割して並列で読み込むことにも対応しています。(AsakusaFWが用意しているDelimiterRangeInputStreamクラスを使っているだけですが^^;)
以前も0.2.1用のテキストファイル読み込みクラスを作ってみましたが、今回はDirect I/O用なので、こちらの方が良いと思います。
Formatクラスのソースをダウンロードしてパッケージ名やデータモデルクラスの部分を自分のものに差し替えれば使えると思います。
※コメント投稿者のブログIDはブログ作成者のみに通知されます