ひしだまの変更履歴

ひしだまHPの更新履歴。
主にTRPGリプレイの元ネタ集、プログラミング技術メモと自作ソフト、好きなゲームや音楽です。

Direct I/Oでベタテキストを読み込む方法

2014-12-18 00:41:59 | PG(分散処理)

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クラスのソースをダウンロードしてパッケージ名やデータモデルクラスの部分を自分のものに差し替えれば使えると思います。



最新の画像もっと見る

コメントを投稿