ククログ

株式会社クリアコード > ククログ > 2017年4月12日頃のApache Arrow

2017年4月12日頃のApache Arrow

2017年4月12日頃のApache Arrowの様子を紹介します。

arrow::Tensorの追加

0.2.0頃のApache Arrowはarrow::Arrayで1次元のデータ(配列)、arrow::Tableで2次元のデータ(表)を表現していました。最近のApache Arrowはこれらに加えてarrow::Tensorを追加しました。これはN次元のデータを表現します。

arrow::Tensorは以下と同じようなデータを表現します。

Apache Arrowはシステム間でのデータ交換のコストを下げることを重視しています。つまり、最近のApache Arrowはarrow::Tensorで表現するようなデータのデータ交換コストも下げる取り組みを始めた、ということです。

現時点のarrow::Tensorはゼロコピーでのデシリアライズに対応しています。Rayという分散タスク実行エンジンはNumPyのデータをシリアライズするためにApache Arrowを使うようにしました

今後はarrow::Tensorのデータに対して数学関数を使えるようにする予定です。要素毎(element-wise)の演算だけでなく行列演算もサポートするかどうかはまだわかりません。

サブライブラリーの統合

0.2.0までのApache Arrowはlibarrowとlibarrow_io(入出力用)とlibarrow_ipc(シリアライズ・デシリアライズ用)というライブラリーに分かれていましたが、libarrowに統合されました。Apache Arrowを使う場合は全部使うことが多いので、これでシンプルに使えるようになりました。

まとめ

2017年4月12日頃のApache Arrowの様子を紹介しました。そろそろ0.3.0がでそうなのですが、arrow::Tensorは0.3.0の目玉になりそうです。