Spark Release 1.3.0

Spark 1.3.0 は、1.X ラインにおける4回目のリリースです。このリリースでは、Spark SQL がアルファプロジェクトから卒業すると同時に、新しい DataFrame API が導入されました。また、Spark のコアエンジンにおけるユーザビリティの改善、MLlib および Spark Streaming の機能拡張も行われています。Spark 1.3 は、60以上の機関から174名のコントリビューターによって、1000以上の個別のパッチによって実現された成果です。

Spark 1.3 をダウンロードするには、ダウンロードページをご覧ください。

Spark Core

Spark 1.3 では、コアエンジンにいくつかのユーザビリティ改善が施されています。コアAPIは、高コストなreduce操作を高速化するために、マルチレベル集計ツリーをサポートするようになりました。エラーレポート機能が改善され、特定の落とし穴となる操作に関する情報がより分かりやすくなりました。Spark の Jetty 依存関係は、ユーザープログラムとの競合を避けるために、シェーディングされるようになりました。Spark は、一部の通信エンドポイントでSSL暗号化をサポートするようになりました。最後に、UIにリアルタイムのGCメトリクスレコード数が追加されました。

DataFrame API

Spark 1.3 では、構造化データセットを扱うための強力で便利な演算子を提供する新しいDataFrames APIが追加されました。DataFrame は、名前付きフィールドとスキーマ情報を含む、ベースとなる RDD API の進化形です。Hive テーブル、JSON データ、JDBC データベース、または Spark の新しいデータソース API の実装から DataFrame を簡単に構築できます。DataFrame は、Spark コンポーネント間、および他のシステムとのデータのインポート/エクスポートにおける共通の交換フォーマットとなります。DataFrame は Python, Scala, Java でサポートされています。

Spark SQL

このリリースでは、Spark SQL はアルファプロジェクトから卒業し、HiveQL 方言および安定したプログラム API に対する後方互換性の保証を提供します。Spark SQL は、データソース API へのテーブル書き込みをサポートするようになりました。新しいJDBC データソースにより、MySQL、Postgres、その他の RDBMS システムとの間でデータのインポート/エクスポートが可能になります。様々な小規模な変更により、Spark SQL での HiveQL のカバレッジが拡張されました。Spark SQL は、Parquet で互換性のあるスキーマをマージする機能により、スキーマ進化もサポートするようになりました。

Spark ML/MLlib

このリリースでは、Spark MLlib はいくつかの新しいアルゴリズムを導入しました:トピックモデリングのためのLatent Dirichlet Allocation (LDA)、多クラス分類のための多項ロジスティック回帰、クラスタリングのためのガウス混合モデル (GMM) および Power Iteration Clustering、頻繁パターンマイニングのためのFP-growth、分散線形代数のためのBlock Matrix 抽象化。交換可能なフォーマットでのモデルのインポート/エクスポートの初期サポートが追加されました。これは将来のバージョンで Java/Python/Scala のより多くのモデルタイプをカバーするように拡張される予定です。k-means と ALS の実装は、大幅なパフォーマンス向上につながるアップデートを受けました。PySpark は、Spark 1.2 で追加されたML パイプライン API、および勾配ブーステッドツリーガウス混合モデルをサポートするようになりました。最後に、ML パイプライン API は新しい DataFrame 抽象化をサポートするように移植されました。

Spark Streaming

Spark 1.3 では、新しい直接 Kafka APIドキュメント)が導入され、ライトアヘッドログを使用せずにexactly-once配信が可能になりました。また、Python Kafka APIと、将来のリリースで追加される追加の Python API のためのインフラストラクチャが追加されました。オンライン版のロジスティック回帰と、バイナリレコードを読み取る機能も追加されました。ステートフルな操作では、初期状態RDDのロードサポートが追加されました。最後に、ストリーミングプログラミングガイドが更新され、ストリーミングアプリケーション内でのSQLおよびDataFrame操作に関する情報、および耐障害性セマンティクスに関する重要な明確化が含まれました。

GraphX

GraphX はこのリリースでいくつかのユーティリティ関数を追加しました。これには、標準化されたエッジグラフへの変換が含まれます。

Spark 1.3 へのアップグレード

Spark 1.3 は Spark 1.X リリースとバイナリ互換性があるため、コードの変更は不要です。ただし、明示的に不安定としてマークされている API は除外されます。

Spark SQL API の安定化の一環として、SchemaRDD クラスは DataFrame にリネームされました。Spark SQL の移行ガイドで、アップグレードプロセスについて詳しく説明しています。また、Spark SQL は、予約語("string" や "table" など)を使用する列識別子をバッククォートでエスケープする必要があるようになりました。

既知の問題

このリリースには、Spark 1.3.1 で対応される予定の既知の問題がいくつかあります。

  • SPARK-6194: PySpark の collect() におけるメモリリーク。
  • SPARK-6222: Spark Streaming における障害復旧の問題。
  • SPARK-6315: Spark SQL が Spark 1.1 で生成された parquet データを読み込めない。
  • SPARK-6247: Spark SQL における特定の結合タイプの解析エラー。

クレジット

  • Aaron Davidson – Core におけるバグ修正
  • Alex Baretta – Core における改善
  • Alex Liu – Core および SQL における改善;SQL におけるバグ修正
  • Alexander Bezzubov – Core におけるドキュメント
  • Alexander Ulanov – MLlib におけるアンブレラ;Core および MLlib におけるドキュメント;MLlib における新機能
  • Andrew Ash – Core におけるドキュメント
  • Andrew Or – Core および YARN における改善;Core および YARN におけるバグ修正
  • Andrew Rowson – YARN におけるバグ修正
  • Andrey Zagrebin – Core および PySpark における改善
  • Antonio Navarro Perez – Core におけるドキュメント
  • Ben Cook – MLlib および PySpark におけるテスト;PySpark および SQL における改善;Core における新機能
  • Bilna P – Streaming におけるテスト
  • Brennon York – Core における新機能;Core、GraphX、およびスケジューラにおけるバグ修正;Core における改善
  • Burak Yavuz – spark submit および MLlib における改善;Core および MLlib における新機能;Core および spark submit におけるバグ修正;Core および MLlib におけるドキュメント
  • Cheng Hao – SQL における改善;SQL における新機能;Core および SQL におけるバグ修正
  • Cheng Lian – Core におけるドキュメント;SQL におけるテスト;Core および SQL における改善;Core、テスト、および SQL におけるバグ修正;SQL における改善
  • Cheolsoo Park – YARN におけるバグ修正
  • Chip Senkbeil – Core におけるバグ修正
  • Christophe Preaud – Core における改善
  • Cody Koeninger – Streaming における改善
  • DB Tsai – MLlib における改善;Core および MLlib におけるドキュメント;MLlib における新機能;MLlib におけるバグ修正;MLlib における改善
  • Dale Richardson – Core における改善
  • Daniel Darabos – Core におけるバグ修正
  • Daoyuan Wang – SQL における改善;Core および SQL における改善;Core および SQL における新機能;SQL におけるバグ修正;Core におけるドキュメント
  • David Y. Ross – Core におけるアンブレラ
  • Davies Liu – PySpark における改善;Core および PySpark におけるドキュメント;Streaming および PySpark における新機能;Streaming、Core、PySpark、MLlib、および SQL におけるバグ修正;PySpark および SQL における改善
  • Derek Ma – Shuffle におけるバグ修正
  • Doing Done – SQL における改善
  • Elmer Garduno – Core におけるバグ修正
  • Emre Sevinc – Core および MLlib におけるドキュメント
  • Eric Moyer – Core におけるドキュメント
  • Ernest – Core および GraphX における改善
  • Evan Yu – Core におけるバグ修正
  • Fan Jiang – MLlib における新機能
  • Fernando Otero (ZeoS) – MLlib における改善
  • Gabe Mulley – PySpark および SQL におけるバグ修正
  • Gang Li – Core におけるバグ修正
  • Gankun Luo – Core における改善;SQL におけるバグ修正
  • Gaspar Munoz – Core におけるドキュメント
  • Gen TANG – EC2 におけるバグ修正
  • Grzegorz Dubicki – EC2 における改善
  • Guo Wei – SQL におけるバグ修正
  • GuoQiang Li – Core における改善;Core および YARN におけるバグ修正
  • Hari Shreedharan – Streaming、テスト、および YARN におけるバグ修正
  • Holden Karau – EC2 における改善
  • Huang Zhaowei – Core および YARN におけるバグ修正
  • Hung Lin – SQL における改善
  • Ilayaperumal Gopinathan – Streaming におけるバグ修正
  • Ilya Ganelin – Core における改善;Core および Shuffle におけるバグ修正
  • Imran Rashid – Core におけるバグ修正
  • Iulian Dragos – Streaming におけるテスト
  • Ivan Vergiliev – Core における改善
  • Jacek Lewandowski – Core におけるバグ修正
  • Jacky Li – MLlib および SQL における改善;MLlib における新機能;MLlib および SQL におけるバグ修正
  • Jakub Dubovsky – MLlib における改善
  • Jeremy Freeman – Streaming および PySpark における改善;Streaming および MLlib における新機能;MLlib および PySpark におけるバグ修正
  • Jesper Lundgren – Streaming におけるバグ修正
  • Jongyoul Lee – Core および Mesos における改善;Streaming におけるドキュメント;Core、Mesos、および SQL におけるバグ修正
  • Joseph J.C. Tang – MLlib におけるバグ修正
  • Joseph K. Bradley – MLlib における新機能;MLlib におけるアンブレラ;Core および MLlib におけるドキュメント;MLlib における改善;GraphX、MLlib、および SQL における改善;Core、GraphX、PySpark、MLlib、および SQL におけるバグ修正
  • Josh Rosen – Core におけるバグ修正
  • Josh Rosen – Core、テスト、EC2、および SQL における改善;Core における新機能;Core、テスト、PySpark、Streaming、スケジューラ、SQL、spark submit、および Web UI におけるバグ修正
  • Judy Nash – SQL における新機能
  • Kai Sasaki – Core および PySpark におけるドキュメント;Core および MLlib におけるバグ修正
  • Kanwaljit Singh – Core におけるバグ修正
  • Kashish Jain – YARN におけるバグ修正
  • Kay Ousterhout – Web UI における改善;Core における新機能;Core および SQL におけるバグ修正
  • Kazuki Taniguchi – MLlib および PySpark における新機能
  • Kenji Kikushima – GraphX におけるバグ修正
  • Kenneth Myers – Streaming におけるドキュメント
  • Kirill A. Korinskiy – Web UI におけるバグ修正
  • Kostas Sakellis – Core、Web UI、および YARN における改善;Core におけるバグ修正;Core における改善
  • Kousuke Saruta – Core、Web UI、および YARN における改善;Streaming および PySpark における新機能;Core および Web UI におけるバグ修正;Core におけるドキュメント
  • Kuldeep – SQL におけるバグ修正
  • Li Zhihui – Core におけるドキュメント
  • Liang-Chi Hsieh – Core、MLlib、および SQL における改善;Core におけるテスト;Core におけるドキュメント;Core および SQL におけるバグ修正
  • Liangliang Gu – Web UI におけるバグ修正
  • Lianhui Wang – YARN における改善;Core および YARN におけるバグ修正
  • Liu Hao – GraphX におけるバグ修正
  • Liu Jiongzhou – MLlib におけるバグ修正
  • Lu Yan – SQL における改善
  • Lukasz Jastrzebski – Core におけるバグ修正
  • Madhu Siddalingaiah – Core におけるドキュメント
  • Makoto Fukuhara – Core における改善
  • Manoj Kumar – MLlib および PySpark における改善;Core および MLlib におけるドキュメント
  • Marcelo Vanzin – Core および YARN における改善;Core、PySpark、YARN、および SQL におけるバグ修正
  • Markus Dale – Core におけるバグ修正
  • Martin Zapletal – Core および MLlib におけるドキュメント;MLlib における新機能
  • Masayoshi TSUZUKI – Web UI における改善;Windows、Core、および YARN におけるバグ修正
  • Matei Zaharia – Core における改善
  • Matt Whelan – Core におけるバグ修正
  • Matthew Cheah – Core におけるバグ修正
  • Mayur Rustagi – Streaming におけるドキュメント
  • Meethu Mathew – MLlib および PySpark における新機能
  • Michael Armbrust – Core における改善;Core、MLlib、および SQL におけるバグ修正;SQL における改善
  • Michael Davies – SQL における改善
  • Michael Nazario – PySpark における改善およびバグ修正
  • Mike Jennings – EC2 における新機能
  • Mingyu Kim – Core におけるバグ修正
  • Nan Zhu – Streaming における改善;Core におけるドキュメント;Core および Streaming におけるバグ修正
  • Nate Crosswhite – MLlib および PySpark における改善
  • Nathan Kronenfeld – Core におけるバグ修正
  • Nathan McCarthy – Core におけるバグ修正
  • Nicholas Chammas – EC2 における改善;EC2 におけるアンブレラ;EC2 におけるバグ修正;Core におけるドキュメント
  • Nishkam Ravi – Core におけるバグ修正
  • Octavian Geagla – MLlib における改善
  • Patrick Wendell – Core における改善;Core、テスト、および Streaming におけるバグ修正;Core における改善
  • Paul Power – Core におけるドキュメント
  • Peishen Jia – MLlib における新機能
  • Peng Xu – Core におけるドキュメント
  • Peter Klipfel – Core におけるドキュメント
  • Peter Rudenko – MLlib における改善
  • Peter Vandenabeele – Core におけるドキュメント
  • Prabeesh K – Streaming における改善
  • Prashant Sharma – Core における新機能;Core におけるバグ修正;Core および Web UI における改善
  • RJ Nowling – MLlib および PySpark における新機能
  • Ravindra Pesala – SQL における改善
  • Reynold Xin – Core、Shuffle、および SQL における改善;Core におけるドキュメント;Core および SQL におけるバグ修正;Java API および SQL における改善
  • Reza Zadeh – MLlib における改善
  • Ryan Williams – Core における改善、バグ修正、およびドキュメント
  • Sadhan Sood – SQL におけるバグ修正
  • Saisai Shao – Streaming における改善;Streaming、SQL、および Core におけるバグ修正;Streaming における改善
  • Sam Halliday – Core における改善
  • Sandy Ryza – Core および YARN における改善;Core および YARN におけるバグ修正;YARN における改善
  • Sasaki Toru – SQL における改善
  • Sean Owen – Core におけるドキュメント;Core におけるウィッシュ;Java API、Core、MLlib、EC2、および Streaming における改善;Core、テスト、MLlib、YARN、Streaming、SQL、Java API、Web UI、および GraphX におけるバグ修正;Core における改善
  • Shekhar Bansal – YARN におけるバグ修正
  • Sheng Li – Core および SQL における改善;SQL における新機能;SQL におけるバグ修正;Core におけるドキュメント
  • Shixiong Zhu – Core におけるテスト;Core における改善;Streaming、SQL、Shuffle、YARN、および Core における改善;Core、SQL、および Streaming におけるバグ修正;Core、YARN、および Streaming におけるドキュメント
  • Shuo Xiang – MLlib における新機能
  • Soumitra Kumar – Streaming における新機能
  • Stephen Boesch – Core および MLlib におけるドキュメント
  • Stephen Haberman – Core におけるバグ修正
  • Su Yan – Core における改善;Core および Web UI におけるバグ修正
  • Takayuki Hasegawa – Project Infra におけるバグ修正
  • Takeshi Yamamuro – GraphX における改善;Core および SQL におけるドキュメント;GraphX におけるバグ修正
  • Takuya UESHIN – SQL における改善およびバグ修正
  • Tathagata Das – Streaming における改善;Core、Web UI、PySpark、テスト、および Streaming におけるバグ修正
  • Thomas Graves – Core におけるバグ修正
  • Thu Kyaw – Core および SQL における改善
  • Timothy Chen – Core におけるドキュメント
  • Tingjun Xu – Core における改善;Core および YARN におけるバグ修正
  • Tobias Schlatter – Core における改善およびバグ修正
  • Tom Panning – SQL におけるバグ修正
  • Tor Myklebust – SQL における改善
  • Travis Galoppo – MLlib における改善;Core および MLlib におけるドキュメント;MLlib における新機能
  • Tsuyoshi Ozawa – Core および YARN におけるドキュメント
  • Uncle Gen – spark submit および Web UI における改善;Core におけるバグ修正
  • Varun Saxena – Core における改善
  • Venkata Ramana Gollamudi – Core および SQL におけるバグ修正;Core における改善
  • Vladimir Grigor – EC2 におけるバグ修正
  • Vladimir Vladimirov – PySpark における改善
  • Wang Fei – SQL における改善;Web UI および SQL における改善;SQL におけるバグ修正;Core におけるドキュメント
  • Wang Tao – Core および YARN における改善;Core および YARN におけるバグ修正
  • Wenchen Fan – SQL におけるバグ修正
  • Winston Chen – PySpark におけるバグ修正
  • Xiangrui Meng – PySpark、Core、Streaming、EC2、および MLlib における改善;Core および MLlib におけるドキュメント;MLlib および PySpark における新機能;PySpark、MLlib、および SQL におけるバグ修正;MLlib および PySpark における改善
  • Xiaohua Yi – SQL におけるバグ修正
  • Xiaojing Wang – SQL におけるテスト;SQL における改善;Core におけるドキュメント
  • Xu Kun – Core におけるバグ修正
  • Yadong Qi – SQL におけるバグ修正;Streaming における改善
  • Yanbo Liang – SQL、MLlib、および PySpark におけるバグ修正
  • Yandu Oppacher – PySpark における改善
  • Yantang Zhai – Core および SQL における改善;SQL におけるバグ修正
  • Yash Datta – SQL におけるバグ修正
  • Ye Xianjin – Core におけるバグ修正
  • Yi Tian – SQL における改善およびバグ修正
  • Yin Huai – Core におけるドキュメント;SQL における改善;SQL におけるバグ修正;SQL における改善
  • Yuhao Yang – MLlib における改善およびバグ修正
  • Yuri Saito – MLlib における改善
  • Yuu ISHIKAWA – MLlib における新機能
  • Zhan Zhang – Core および YARN におけるバグ修正
  • Zhang, Liye – Core および Web UI における改善;Core におけるバグ修正

貢献してくださった皆様、ありがとうございました!


Spark ニュースアーカイブ