Apache Arrow
--
Apache Arrowが目指していることはメモリー上でのデータ処理を効率化することです。
「効率化」には2つの観点があります。1つは「速度」です。速いほど効率的ということです。もう1つは「実装コスト」です。実装コストが低いほど効率的ということです。
最も大きな問題を一つあげるなら、それはデータの交換でした。特に問題だったのは、あるプロセスのメモリ空間から他のプロセスのメモリ空間へ大規模な表形式のデータセットを移動させることでした。これは非常に負荷の大きい処理であり、標準的な解決方法がありませんでした。ThriftやProtocol BuffersといったRPC指向のシリアライゼーションプロトコルは、あまりに低速であり
pyarrow
table.to_pandas(), table.from_pandas()がある。
あと、しっておくべきは、
While pandas only supports flat columns, the Table also provides nested columns
Rのtidyverse 側でもそうだけど、nested columns のデータ型が増えてくるので、これをどうhandlingするかは課題になりそう。 JuputerLabで、databusというproject?があり、データをどの階層でどうもつか?みたいな話がある。 その中で、ajaxで arrowをそのまま?データとしてもってきてる例(でいいのかな)