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 以获取详细更改。我们在此处整理了一份高级别更改列表,按主要模块分组。

核心与 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:向外部目录添加事件
    • SPARK-18127:为 Spark 添加钩子和扩展点
    • SPARK-20576:在 Dataset/DataFrame 中支持通用提示函数
    • SPARK-17203:数据源选项应始终不区分大小写
    • SPARK-19139:基于 AES 的 Spark 认证机制
  • 性能与稳定性
    • 基于成本的优化器
      • SPARK-17075 SPARK-17076 SPARK-19020 SPARK-17077 SPARK-19350:过滤器、连接、聚合、投影和限制/采样操作符的基数估计
      • 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:对分区表执行 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 和 Datasets 指南

结构化流

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

编程指南:结构化流编程指南

MLlib

  • 基于 DataFrame 的 API 中的新算法
    • SPARK-14709:LinearSVC(线性 SVM 分类器)(Scala/Java/Python/R)
    • SPARK-19635:基于 DataFrame 的 API 中的卡方检验(Scala/Java/Python)
    • SPARK-19636:基于 DataFrame 的 API 中的相关性(Scala/Java/Python)
    • SPARK-13568:用于填充缺失值的 Imputer 特征转换器(Scala/Java/Python)
    • SPARK-18929:为 GLMs 添加 Tweedie 分布(Scala/Java/Python/R)
    • SPARK-14503:FPGrowth 频繁模式挖掘和关联规则(Scala/Java/Python/R)
  • 现有算法已添加到 Python 和 R API
    • SPARK-18239:梯度提升树 (R)
    • SPARK-18821:二分 K-Means (R)
    • SPARK-18080:局部敏感哈希 (LSH) (Python)
    • SPARK-6227:PySpark 的分布式 PCA 和 SVD(在基于 RDD 的 API 中)
  • 主要错误修复
    • SPARK-19110:DistributedLDAModel.logPrior 正确性修复
    • SPARK-17975:EMLDAOptimizer 因 ClassCastException 失败(由 GraphX 检查点错误引起)
    • SPARK-18715:修复二项式 GLM 中错误的 AIC 计算
    • SPARK-16473:BisectingKMeans 在训练时因某些输入出现“java.util.NoSuchElementException: key not found”错误
    • SPARK-19348:pyspark.ml.Pipeline 在多线程使用下损坏
    • SPARK-20047:边界约束逻辑回归

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

SparkR

SparkR 在 2.2.0 版本中的主要重点是为现有 Spark SQL 功能添加广泛支持

  • 主要功能
    • SPARK-19654:R 的结构化流 API
    • SPARK-20159:支持 R 中的完整 Catalog API
    • SPARK-19795:列函数 to_json, from_json
    • SPARK-19399:DataFrame 和列上的 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: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 保存的 Gaussian Mixture Models 可能无法加载到 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 新闻存档

最新新闻

存档