Spark 2.2.0 版本发布

Apache Spark 2.2.0 是 2.x 系列的第三个版本。此版本移除了 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, BROADCASTJOIN, 和 MAPJOIN
    • SPARK-18350: 支持会话本地时区
    • SPARK-19261: 支持 ALTER TABLE table_name ADD COLUMNS
    • SPARK-20420: 将事件添加到外部 Catalog
    • SPARK-18127: 向 Spark 添加 hooks 和扩展点
    • SPARK-20576: 支持 Dataset/DataFrame 中的通用提示函数
    • SPARK-17203: 数据源选项应始终不区分大小写
    • SPARK-19139: 基于 AES 的 Spark 身份验证机制
  • 性能和稳定性
    • 基于成本的优化器
      • 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 的文件列表/IO 改进
    • SPARK-18775: 限制每个文件写入的最大记录数
    • SPARK-18761: 无法取消/杀死的任务不应使作业耗尽资源
    • SPARK-15352: 拓扑感知块复制
  • 其他值得注意的更改
    • SPARK-18352: 支持解析多行 JSON 文件
    • SPARK-19610: 支持解析多行 CSV 文件
    • SPARK-21079: 分析分区表上的 Table Command
    • 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 和 Datasets 指南

Structured Streaming

  • 正式发布
    • SPARK-20844: Structured Streaming API 现在是 GA,不再标记为实验性
  • Kafka 改进
    • SPARK-19719: 支持在流式或批处理中从/向 Apache Kafka 读取和写入数据
    • SPARK-19968: 缓存生产者以降低 kafka 到 kafka 流的延迟。
  • API 更新
    • SPARK-19067: 支持使用 [flat]MapGroupsWithState 进行复杂的状态处理和超时
    • SPARK-19876: 支持一次性触发器
  • 其他值得注意的更改
    • SPARK-20979: 用于测试和基准测试的速率源

编程指南: Structured Streaming 编程指南

MLlib

  • DataFrame-based API 中的新算法
    • SPARK-14709: LinearSVC (线性 SVM 分类器) (Scala/Java/Python/R)
    • SPARK-19635: DataFrame-based API 中的 ChiSquare 测试 (Scala/Java/Python)
    • SPARK-19636: DataFrame-based 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: 梯度提升树 ®
    • SPARK-18821: Bisecting K-Means ®
    • SPARK-18080: 局部敏感哈希 (LSH) (Python)
    • SPARK-6227: PySpark 的分布式 PCA 和 SVD(在 RDD-based API 中)
  • 主要错误修复
    • SPARK-19110: DistributedLDAModel.logPrior 正确性修复
    • SPARK-17975: EMLDAOptimizer 失败并显示 ClassCastException(由 GraphX 检查点错误引起)
    • SPARK-18715: 修复 Binomial GLM 中错误的 AIC 计算
    • SPARK-16473: BisectingKMeans 在训练期间失败,并显示“java.util.NoSuchElementException: key not found”的某些输入
    • SPARK-19348: pyspark.ml.Pipeline 在多线程使用下被破坏
    • SPARK-20047: Box-constrained Logistic Regression

编程指南: 机器学习库 (MLlib) 指南

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

  • Bug 修复
    • SPARK-18847: PageRank 为具有接收器的图提供不正确的结果
    • SPARK-14804: Graph vertexRDD/EdgeRDD 检查点导致 ClassCastException
  • 优化
    • SPARK-18845: PageRank 初始值改进,以实现更快的收敛
    • SPARK-5484: Pregel 应该定期检查点以避免 StackOverflowError

编程指南: GraphX 编程指南

弃用

  • Python
    • SPARK-12661: 移除对 Python 2.6 的支持
  • MLlib
    • SPARK-18613: spark.ml LDA 类不应在 API 中公开 spark.mllib。 在 spark.ml.LDAModel 中,已弃用 oldLocalModelgetModel
  • SparkR
    • SPARK-20195: 弃用 createExternalTable

行为变更

  • MLlib
    • SPARK-19787: DeveloperApi ALS.train() 使用默认的 regParam 值 0.1 而不是 1.0,以便与常规 ALS API 的默认 regParam 设置相匹配。
  • SparkR
    • SPARK-19291: 这为 SparkR Gaussian Mixture Models 添加了对数似然,但这样做引入了 SparkR 模型持久性不兼容性:从 SparkR 2.1 保存的高斯混合模型可能无法加载到 SparkR 2.2 中。 我们计划将来为 SparkR 提供向后兼容性保证。

已知问题

  • SPARK-21093: 多个 gapply 执行偶尔在 SparkR 中失败

贡献者

最后但同样重要的是,如果没有以下贡献者,此版本将不可能实现: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 新闻存档

最新消息

存档