Spark 版本 2.1.0

Apache Spark 2.1.0 是 2.x 系列的第二个版本。此版本在 Structured Streaming 的生产就绪性方面取得了显著进展,增加了对事件时间水印Kafka 0.10 支持。此外,此版本更注重可用性、稳定性和完善,解决了 1200 多个问题。

要下载 Apache Spark 2.1.0,请访问下载页面。您可以查阅 JIRA 以获取详细变更。我们在这里整理了一份高级别的变更列表,按主要模块分组。

核心和 Spark SQL

  • API 更新
    • SPARK-17864: 数据类型 API 是稳定 API。
    • SPARK-18351: 用于解析字符串列 JSON 的 from_json 和 to_json
    • SPARK-16700: 在 PySpark 中创建 DataFrame 时,Python 字典可用作 StructType 的值。
  • 性能和稳定性
    • SPARK-17861: 可扩展的分区处理。Hive 元存储默认存储所有使用 Hive 存储格式存储的 Spark 表以及使用 Spark 原生格式存储的表的表分区元数据。此变更减少了分区表的首次查询延迟,并允许使用 DDL 命令操作使用 Spark 原生格式存储的表的分区。用户可以通过使用 MSCK 命令迁移由先前版本创建的,使用 Spark 原生格式存储的表
    • SPARK-16523: 通过添加由基于行的哈希映射支持的快速聚合缓存来加快 group-by 聚合性能。
  • 其他值得注意的变更
    • SPARK-9876: parquet-mr 升级到 1.8.1

编程指南:Spark 编程指南Spark SQL、DataFrames 和 Datasets 指南

Structured Streaming

  • API 更新
    • SPARK-17346: Structured Streaming 中支持 Kafka 0.10
    • SPARK-17731: Structured Streaming 的指标
    • SPARK-17829: 偏移日志的稳定格式
    • SPARK-18124: 基于观察延迟的事件时间水印
    • SPARK-18192: 在 Structured Streaming 中支持所有文件格式
    • SPARK-18516: 将瞬时状态与进度性能统计信息分离
  • 稳定性
    • SPARK-17267: 长期运行的结构化流处理要求

编程指南:Structured Streaming 编程指南

MLlib

  • API 更新
    • SPARK-5992: 局部敏感哈希
    • SPARK-7159: 基于 DataFrame API 的多类逻辑回归
    • SPARK-16000: ML 持久化:通过使用 spark.mllib.linalg.Vector 列的已保存模型,使基于 DataFrame API 的模型加载向后兼容 Spark 1.x
  • 性能和稳定性
    • SPARK-17748: 对于特征数量小于 4096 的情况,更快速、更稳定的线性回归
    • SPARK-16719: RandomForest:每次迭代通信更少的树

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

SparkR

SparkR 在 2.1.0 版本中的主要重点是增加对 ML 算法的广泛支持,其中包括

  • SparkR 中新的 ML 算法,包括 LDA、高斯混合模型、ALS、随机森林、梯度提升树等等
  • 支持提供与 glmnet R 包类似功能的多项式逻辑回归
  • 使用 spark.addFile 在 worker 上安装第三方包 (SPARK-17577)。
  • 与 Apache Spark 版本一起构建的独立安装包。我们很快会将其提交到 CRAN。

编程指南:SparkR (Spark 上的 R)

GraphX

  • SPARK-11496: 个性化 PageRank

编程指南:GraphX 编程指南

弃用

  • MLlib
    • SPARK-18592: 弃用树和集成模型中不必要的 Param setter 方法

行为变更

  • 核心和 SQL
    • SPARK-18360: 默认数据库中表的默认表路径将位于默认数据库的位置下,而不是总是依赖于仓库位置设置。
    • SPARK-18377: spark.sql.warehouse.dir 现在是一个静态配置。用户需要在第一次 SparkSession 启动前设置它,并且它的值在同一应用程序中的会话之间共享。
    • SPARK-14393: 非确定性函数生成的值在 coalesce 或 union 后不会改变。
    • SPARK-18076: 修复 DateFormat、NumberFormat 中使用的默认区域设置为 Locale.US
    • SPARK-16216: CSV 和 JSON 数据源以 ISO 8601 格式字符串写入时间戳和日期值。在这两个数据源中添加了 timestampFormat 和 dateFormat 两个选项,允许用户分别控制时间戳和日期值在字符串表示中的格式。有关这两个配置的更多详细信息,请参阅 DataFrameReaderDataFrameWriter 的 API 文档。
    • SPARK-17427: 当输入参数为 null 时,函数 SIZE 返回 -1。
    • SPARK-16498: LazyBinaryColumnarSerDe 被修复为 RCFile 的 SerDe。
    • SPARK-16552: 如果用户没有为表指定 schema 并依赖于 schema 推断,则推断的 schema 将存储在元存储中。当使用此表时,schema 将不会再次推断。
  • Structured Streaming
    • SPARK-18516: 将瞬时状态与进度性能统计信息分离
  • MLlib
    • SPARK-17870: ChiSquareSelector 现在通过使用 pValue 而不是原始统计数据来选择最佳特征,从而考虑了自由度。

已知问题

  • SPARK-17647: 在 SQL LIKE 子句中,反斜杠后面的通配符 '%' 和 '_' 总是被转义。
  • SPARK-18908: 如果 StreamExecution 启动失败,用户需要检查 stderr 以获取错误信息。

致谢

最后但同样重要的是,没有以下贡献者的努力,此版本不可能实现:ALeksander Eskilson, Aaditya Ramesh, Adam Roberts, Adrian Petrescu, Ahmed Mahran, Alex Bozarth, Alexander Shorin, Alexander Ulanov, Andrew Duffy, Andrew Mills, Andrew Ray, Angus Gerry, Anthony Truchet, Anton Okolnychyi, Artur Sukhenko, Bartek Wisniewski, Bijay Pathak, Bill Chambers, Bjarne Fruergaard, Brian Cho, Bryan Cutler, Burak Yavuz, Cen Yu Hai, Charles Allen, Cheng Lian, Chie Hayashida, Christian Kadner, Clark Fitzgerald, Cody Koeninger, Daniel Darabos, Daoyuan Wang, David Navas, Davies Liu, Denny Lee, Devaraj K, Dhruve Ashar, Dilip Biswal, Ding Ding, Dmitriy Sokolov, Dongjoon Hyun, Drew Robb, Ekasit Kijsipongse, Eren Avsarogullari, Ergin Seyfe, Eric Liang, Erik O’Shaughnessy, Eyal Farago, Felix Cheung, Ferdinand Xu, Fred Reiss, Fu Xing, Gabriel Huang, Gaetan Semet, Gang Wu, Gayathri Murali, Gu Huiqin Alice, Guoqiang Li, Gurvinder Singh, Hao Ren, Herman Van Hovell, Hiroshi Inoue, Holden Karau, Hossein Falaki, Huang Zhaowei, Huaxin Gao, Hyukjin Kwon, Imran Rashid, Jacek Laskowski, Jagadeesan A S, Jakob Odersky, Jason White, Jeff Zhang, Jianfei Wang, Jiang Xingbo, Jie Huang, Jie Xiong, Jisoo Kim, John Muller, Jose Hiram Soltren, Joseph K. Bradley, Josh Rosen, Jun Kim, Junyang Qian, Justin Pihony, Kapil Singh, Kay Ousterhout, Kazuaki Ishizaki, Kevin Grealish, Kevin McHale, Kishor Patil, Koert Kuipers, Kousuke Saruta, Krishna Kalyan, Liang Ke, Liang-Chi Hsieh, Lianhui Wang, Linbo Jin, Liwei Lin, Luciano Resende, Maciej Brynski, Maciej Szymkiewicz, Mahmoud Rawas, Manoj Kumar, Marcelo Vanzin, Mariusz Strzelecki, Mark Grover, Maxime Rihouey, Miao Wang, Michael Allman, Michael Armbrust, Michael Gummelt, Michal Senkyr, Michal Wesolowski, Mikael Staldal, Mike Ihbe, Mitesh Patel, Nan Zhu, Nattavut Sutyanyong, Nic Eggert, Nicholas Chammas, Nick Lavers, Nick Pentreath, Nicolas Fraison, Noritaka Sekiyama, Peng Meng, Peng, Meng, Pete Robbins, Peter Ableda, Peter Lee, Philipp Hoffmann, Prashant Sharma, Prince J Wesley, Priyanka Garg, Qian Huang, Qifan Pu, Rajesh Balamohan, Reynold Xin, Robert Kruszewski, Russell Spitzer, Ryan Blue, Saisai Shao, Sameer Agarwal, Sami Jaktholm, Sandeep Purohit, Sandeep Singh, Satendra Kumar, Sean Owen, Sean Zhong, Seth Hendrickson, Sharkd Tu, Shen Hong, Shivansh Srivastava, Shivaram Venkataraman, Shixiong Zhu, Shuai Lin, Shubham Chopra, Sital Kedia, Song Jun, Srinath Shankar, Stavros Kontopoulos, Stefan Schulze, Steve Loughran, Suman Somasundar, Sun Dapeng, Sun Rui, Sunitha Kambhampati, Suresh Thalamati, Susan X. Huynh, Sylvain Zimmer, Takeshi YAMAMURO, Takuya UESHIN, Tao LI, Tao Lin, Tao Wang, Tarun Kumar, Tathagata Das, Tejas Patil, Thomas Graves, Timothy Chen, Timothy Hunter, Tom Graves, Tom Magrino, Tommy YU, Tyson Condie, Uncle Gen, Vinayak Joshi, Vincent Xie, Wang Fei, Wang Lei, Wang Tao, Wayne Zhang, Weichen Xu, Weiluo (David) Ren, Weiqing Yang, Wenchen Fan, Wesley Tang, William Benton, Wojciech Szymanski, Xiangrui Meng, Xianyang Liu, Xiao Li, Xin Ren, Xin Wu, Xing SHI, Xusen Yin, Yadong Qi, Yanbo Liang, Yang Wang, Yangyang Liu, Yin Huai, Yu Peng, Yucai Yu, Yuhao Yang, Yuming Wang, Yun Ni, Yves Raimond, Zhan Zhang, Zheng RuiFeng, Zhenhua Wang, pkch, tone-zhang, yimuxi


Spark 新闻存档

最新新闻

存档