Spark リリース 2.2.0

Apache Spark 2.2.0 は 2.x ラインの 3 番目のリリースです。このリリースでは、Structured Streaming の実験的タグが削除されました。さらに、このリリースではユーザビリティ、安定性、および洗練性に重点が置かれ、1100 件以上のチケットが解決されました。

さらに、PySpark が pypi で利用可能になったことをお知らせできることを嬉しく思います。インストールするには、pip install pyspark を実行するだけです。

Apache Spark 2.2.0 をダウンロードするには、ダウンロードページをご覧ください。JIRA で詳細な変更点を確認できます。ここでは、主要モジュール別にグループ化された、ハイレベルな変更点のリストをまとめました。

Core および Spark SQL

  • API の更新
    • SPARK-19107: DataFrameWriter と Catalog を使用した Hive テーブルの作成をサポート
    • SPARK-13721: LATERAL VIEW OUTER explode() のサポートを追加
    • SPARK-18885: データソーステーブルと Hive serde テーブルの CREATE TABLE 構文を統一
    • SPARK-16475: SQL クエリに Broadcast Hints BROADCAST, BROADCASTJOIN, MAPJOIN を追加
    • SPARK-18350: セッションローカルタイムゾーンをサポート
    • SPARK-19261: ALTER TABLE table_name ADD COLUMNS をサポート
    • SPARK-20420: 外部カタログにイベントを追加
    • SPARK-18127: Spark にフックと拡張ポイントを追加
    • SPARK-20576: Dataset/DataFrame で汎用ヒント関数をサポート
    • SPARK-17203: データソースオプションは常に大文字小文字を区別しないようにする
    • SPARK-19139: Spark 用の AES ベース認証メカニズム
  • パフォーマンスと安定性
    • コストベースオプティマイザ
      • SPARK-17075 SPARK-17076 SPARK-19020 SPARK-17077 SPARK-19350: フィルタ、結合、集計、投影、limit/sample オペレータのカーディナリティ推定
      • SPARK-17080: コストベースの結合順序変更
      • SPARK-17626: スター型スキーマのヒューリスティックを使用した TPC-DS パフォーマンスの向上
    • SPARK-17949: JVM オブジェクトベースの集計オペレータを導入
    • SPARK-18186: HiveUDAFFunction の部分集計サポート
    • SPARK-18362 SPARK-19918: CSV および JSON のファイルリスト/I/O の改善
    • SPARK-18775: ファイルごとに書き込まれるレコードの最大数を制限
    • SPARK-18761: キャンセル不可能/キル不可能なタスクがジョブのリソースを枯渇させないようにする
    • SPARK-15352: トポロジを意識したブロックレプリケーション
  • その他の注目すべき変更
    • SPARK-18352: マルチライン JSON ファイルの解析をサポート
    • SPARK-19610: マルチライン CSV ファイルの解析をサポート
    • SPARK-21079: パーティショニングされたテーブルに対する Analyze Table コマンド
    • SPARK-18703: Hive-serde テーブルに対する挿入/CTAS 完了後のステージングディレクトリとデータファイルの削除
    • SPARK-18209: 完全な SQL 展開なしで、より堅牢なビュー正規化
    • SPARK-13446: [SPARK-18112] Hive metastore 2.0/2.1 からのデータ読み込みをサポート
    • SPARK-18191: RDD API をコミットプロトコルを使用するようにポート
    • SPARK-8425: タスクスケジューリングのためのブラックリストメカニズムを追加
    • SPARK-19464: Hadoop 2.5 以前のサポートを削除
    • SPARK-19493: Java 7 のサポートを削除

プログラミングガイド: Spark RDD プログラミングガイド および Spark SQL, DataFrames and Datasets Guide

Structured Streaming

  • 一般提供開始
    • SPARK-20844: Structured Streaming API が GA となり、実験的というラベルは不再
  • Kafka の改善
    • SPARK-19719: Apache Kafka から/へのストリーミングまたはバッチでのデータの読み書きをサポート
    • SPARK-19968: 低レイテンシの Kafka から Kafka へのストリームのためのキャッシュされたプロデューサー。
  • API の更新
    • SPARK-19067: [flat]MapGroupsWithState を使用した複雑なステートフル処理とタイムアウトのサポート
    • SPARK-19876: 1 回限りのトリガーをサポート
  • その他の注目すべき変更
    • SPARK-20979: テストおよびベンチマークのためのレートソース

プログラミングガイド: Structured Streaming プログラミングガイド

MLlib

  • DataFrame ベース API の新しいアルゴリズム
    • SPARK-14709: LinearSVC (線形 SVM 分類器) (Scala/Java/Python/R)
    • SPARK-19635: DataFrame ベース API での ChiSquare テスト (Scala/Java/Python)
    • SPARK-19636: DataFrame ベース API での相関 (Scala/Java/Python)
    • SPARK-13568: Imputer 特徴量トランスフォーマによる欠損値の補完 (Scala/Java/Python)
    • SPARK-18929: GLM 用の Tweedie 分布を追加 (Scala/Java/Python/R)
    • SPARK-14503: FPGrowth 頻出パターンマイニングと AssociationRules (Scala/Java/Python/R)
  • Python および R API に追加された既存のアルゴリズム
    • SPARK-18239: Gradient Boosted Trees ®
    • SPARK-18821: Bisecting K-Means ®
    • SPARK-18080: Locality Sensitive Hashing (LSH) (Python)
    • SPARK-6227: PySpark 用の分散 PCA および SVD (RDD ベース API)
  • 主なバグ修正
    • SPARK-19110: DistributedLDAModel.logPrior の正確性修正
    • SPARK-17975: EMLDAOptimizer が ClassCastException で失敗 (GraphX チェックポイントのバグによる)
    • SPARK-18715: Binomial GLM での不正確な AIC 計算を修正
    • SPARK-16473: 特定の入力で「java.util.NoSuchElementException: key not found」により BisectingKMeans のトレーニング中に失敗
    • SPARK-19348: pyspark.ml.Pipeline がマルチスレッド使用下で破損する
    • SPARK-20047: Box-constrained Logistic Regression

プログラミングガイド: Machine Learning Library (MLlib) Guide

SparkR

SparkR における 2.2.0 リリースの主な焦点は、既存の Spark SQL 機能の包括的なサポートを追加することでした

  • 主要機能
    • SPARK-19654: R 用 Structured Streaming API
    • SPARK-20159: R での完全な Catalog API をサポート
    • SPARK-19795: to_json, from_json 列関数
    • SPARK-19399: DataFrame 上の Coalesce と列上の coalesce
    • SPARK-20020: DataFrame チェックポイントをサポート
    • SPARK-18285: R でのマルチカラム approxQuantile

プログラミングガイド: SparkR (R on Spark)

GraphX

  • バグ修正
    • SPARK-18847: PageRank がシンクを持つグラフに対して不正確な結果を返す
    • SPARK-14804: Graph vertexRDD/EdgeRDD チェックポイント結果 ClassCastException
  • 最適化
    • SPARK-18845: PageRank の初期値の改善による収束の高速化
    • SPARK-5484: StackOverflowError を回避するために Pregel が定期的にチェックポイントを取得

プログラミングガイド: GraphX Programming Guide

非推奨

  • Python
    • SPARK-12661: Python 2.6 のサポートを削除
  • MLlib
    • SPARK-18613: spark.ml LDA クラスは spark.mllib を API で公開すべきではありません。spark.ml.LDAModel では、oldLocalModel および getModel は非推奨になりました。
  • SparkR
    • SPARK-20195: createExternalTable を非推奨にする

動作の変更

  • MLlib
    • SPARK-19787: DeveloperApi ALS.train() は、通常の ALS API のデフォルト regParam 設定に合わせるため、デフォルトの regParam 値 0.1 を 1.0 の代わりに 0.1 を使用します。
  • SparkR
    • SPARK-19291: これは SparkR ガウス混合モデルに尤度を追加しましたが、これにより SparkR モデルの永続化に互換性の問題が発生しました。SparkR 2.1 から保存されたガウス混合モデルは SparkR 2.2 にロードできない場合があります。将来的には SparkR の後方互換性保証を導入する予定です。

既知の問題

  • SPARK-21093: SparkR での複数の gapply 実行が断続的に失敗

クレジット

最後に、このリリースは以下の貢献者なしでは不可能でした: ALeksander Eskilson, Aaditya Ramesh, Adam Budde, Adam Roberts, Adrian Ionescu, Ala Luszczak, Alex Bozarth, Andrew Ray, Anirudh Ramanathan, Anthony Truchet, Anton Okolnychyi, Armin Braun, Aseem Bansal, Asher Krim, Bago Amirbekian, Benjamin Fradet, Bill Chambers, Bill Chambers, Boaz Mohar, Bogdan Raducanu, Brendan Dwyer, Brian O’Neill, Bryan Cutler, Burak Yavuz, Carson Wang, Cheng Lian, Christopher Snow, Cody Koeninger, DB Tsai, David Eis, David Gingrich, Davies Liu, Davis Shepherd, Denis Bolshakov, Devaraj K, Dhruve Ashar, Dilip Biswal, Ding Ding, Dongjoon Hyun, Dustin Koupal, Eren Avsarogullari, Ergin Seyfe, Eric Liang, Eric Wasserman, Eyal Farago, Eyal Zituny, Felix Cheung, Gabor Feher, Gagan Taneja, Gauravshah, GavinGavinNo1, Herman Van Hovell, Holden Karau, Hossein Falaki, Hyukjin Kwon, Hyukjin Kwon, Ignacio Bermudez, Ilya Matiach, Imran Rashid, IngoSchuster, Ioana Delaney, Jacek Laskowski, Jakob Odersky, James Shuster, Jarrett Meyer, Jason White, Jeff Zhang, Ji Yan, Jiang Xingbo, Jimmy Xiang, Jin Xing, John Lee, Jon McLean, Jong Wook Kim, Jose Hiram Soltren, Joseph K. Bradley, Josh Rosen, Juliusz Sompolski, Junjie Chen, Kalvin Chau, Kay Ousterhout, Kazuaki Ishizaki, Kent Yao, Kevin Yu, Koert Kuipers, Kousuke Saruta, Kousuke Saruta, Kris Mok, Krishna Kalyan, Kunal Khamar, Kyle Kelley, Lee Dongjin, Li Yichao, Liang-Chi Hsieh, Lianhui Wang, Lior Regev, Liwei Lin, MLnick, Marcelo Vanzin, Mark Grover, Mark Hamstra, Masha Basmanova, Maurus Cuelenaere, Menglong TAN, Michael Allman, Michael Armbrust, Michael Gummelt, Michael McCune, Michael Patterson, Michal Senkyr, Michal Szafranski, Mironor, MirrorZ, NICHOLAS T. MARION, Nan Zhu, Nathan Howell, Nattavut Sutyanyong, Nic Eggert, Nicholas Chammas, Nick Lavers, Nick Pentreath, Niranjan Padmanabhan, Oliver Koth, Ong Ming Yang, Parag Chaudhari, Patrick Woody, Peng Meng, Peng, Meng, Pete Robbins, Peter Ableda, Prashant Sharma, Ramkumar Venkataraman, Reynold Xin, Reza Safi, Robert Stupp, Roberto Agostino Vitillo, Rolando Espinoza, Ron Hu, Roxanne Moslehi, Rui Li, Ryan Blue, Ryan Williams, Saisai Shao, Sameer Agarwal, Sandeep Singh, Sean Owen, Seigneurin, Alexis (CONT), Sergei Lebedev, Sergey Zhemzhitsky, Seth Hendrickson, Seth Hendrickson, Sheamus K. Parkes, Shiming Fei, Shivaram Venkataraman, Shixiong Zhu, Shuai Lin, Shubham Chopra, Sital Kedia, Srinivasa Reddy Vundela, Stan Zhai, Stavros Kontopoulos, Steve Loughran, Sue Ann Hong, Sunitha Kambhampati, Syrux, Takeshi YAMAMURO, Takeshi Yamamuro, Takuya UESHIN, Tathagata Das, Tejas Patil, Timothy Hunter, Tom Graves, Tsuyoshi Ozawa, Tyson Condie, Uncle Gen, Vasilis Vryniotis, Vijay Ramesh, Vincent Xie, Wang Tao, Wayne Zhang, Wayne Zhang, Weichen Xu, Weiqing Yang, Wenchen Fan, Wojtek Szymanski, Xianyang Liu, Xiao Li, Xiao Li, Xiaogang Tu, Xin Ren, Xin Wu, Xingbo Jiang, Yan Fa Cai (Yan Facai), Yan Facai (Yan Fa Cai ), Yanbo Liang, Yash Sharma, Yin Huai, Yong Tang, Yu Peng, Yucai Yu, Yuexin Zhang, Yuhao Yang, Yuhao Yang, Yuming Wang, Yun Ni, ZakariaHili, Zhe Sun, Zheng RuiFeng, Zhenhua Wang, Ziyue Huang, adesharatushar, assafmendelson, bomeng, budde, c-sahuja, djvulee, eatoncys, erenavsarogullari, foxish, gf53520, gmoehler, guoxiaolongzte, heary-cao, hustfxj, jayadevanmurali, jianran, jinxing64, jtoka, jyu00, liu-zhaokun, liujianhuiouc, lvdongr, manugarri, meknio, ouyangxiaochen, pjfanning, ptkool, samelamin, saturday-shi, setjet, shaolinliu, sueann, sureshthalamati, titicaca, tpoterba, vijoshi, wangmiao1981, windpiger, wzhfy, xuanyuanking, ymahajan, yucai, zero323, zhaorongsheng, zuotingbing,


Spark ニュースアーカイブ