Rはデータサイエンティストにとって最も強力な言語のひとつであり、2014年1月にUCバークレーのAMPLabがApache SparkをRから使うための仕組みであるSparkRプロジェクトの開発者プレビューを発表したことでさらに強力になった。
インメモリデータ処理のためのビッグデータフレームワークであるApache SparkはClouderaのような大企業の牽引力を手に入れた。Clouderaは最近、Cloudera Distribution for Hadoop (CDH)から Sparkを正式にサポートしたとアナウンスした。最新のリリースであるSpark 0.9をサポートしているが、このバージョンはSparkRの動作要件だ。SparkRはちょうどいいタイミングで現れたといえるだろう。というのも、CDHは最も人気のあるHadoopディストリビューションのひとつで、データサイエンスの分野での導入を後押しするはずだ。データサイエンティストはJavaやScalaよりもRに親しんでいる。O'Reillyの最新の調査の通りだ。
SparkRはSparkからRを使うための軽量なフロントエンドと言えるだろう。つまりSparkRはJavaやScalaほどの拡張性のあるAPIは持たないだろう。しかし、SparkのジョブをRから実行しデータを操作するには十分なAPIだ。クロージャをシリアライズする機能が重要な機能のひとつだろう。これによって変数をSparkクラスタに透過的にコピーできる。さらにSparkRはRのモジュールと組み込み関数経由で統合されており、Sparkクラスタに、計算に必要な特定のモジュールをロードするよう指示できる。しかし、クロージャとは違い、これは手動で設定しなければならない。技術についてのより詳細な説明は、この要約に書いてある。SparkRはSparkのEC2スクリプトを活用して、EC2上で簡単にセットアップできるようになっている。この点についてもGithub上で解説されている。
データサイエンス界隈の人たちはSparkRに注目している。中でもTwitterはこのプロジェクトに対してサポートメッセージを送っている。MLSecProjectを推進しているAlex Pinto氏は次のようなツイートをしている。
これは凄い。@amplabのSparkR。私の好きな技術でデータ分析ができる。
プロジェクトはGithub上にあり、既に100スター近くを集めている活発なコミュニティを持っている。このプロジェクトが生まれてまだ1ヶ月程度しか経っていないことを考えれば、素晴らしい成長だ。まだ、いくつかの課題がオープンのままになっており、コミュニティが活発に活動しているのが伺える。
AMPLabのチームは将来SparkRを機会学習ライブラリであるMLlibに組み込むことに興味を持っており、これが実現すれば、手動で定義をしなくてもアルゴリズムをシームレスに実行することができる。MLlibは機会学習プロジェクトであるMLBaseの中のひとつのコンポーネントだ。MLBaseもまた、高いレベルの抽象と最適化機構を提供する。MLlibは最も急速に成長している機会学習ライブラリであり、137人以上の貢献者がいる。したがって、Rからこのライブラリが使えるようにするのはAMPLabにとって合理的だ。