Spark 1.6.0 版本发布

Apache Spark 1.6.0 是 1.x 系列的第七个版本。此版本包含来自 248+ 位贡献者的贡献!要下载 Spark 1.6.0,请访问下载页面。

您可以查阅 JIRA 以获取详细的更改。我们在此处整理了一个高级别的更改列表

Spark Core/SQL

  • API 更新
    • SPARK-9999  Dataset API - 一个新的 Spark API,类似于 RDD,允许用户使用自定义对象和 lambda 函数,同时仍然获得 Spark SQL 执行引擎的优势。
    • SPARK-10810 会话管理 - 不同的用户可以共享一个集群,同时拥有不同的配置和临时表。
    • SPARK-11197 在文件上执行 SQL 查询 - 简洁的语法,用于在任何受支持格式的文件上运行 SQL 查询,而无需注册表。
    • SPARK-11745 读取非标准 JSON 文件 - 添加了读取非标准 JSON 文件的选项(例如,单引号,未加引号的属性)
    • SPARK-10412 SQL 执行的每个算子的指标 - 显示每个算子的内存使用情况和溢出数据大小的统计信息。
    • SPARK-11329 StructType 的星号 (*) 扩展 - 更容易嵌套和取消嵌套任意数量的列
    • SPARK-4849  缓存数据的改进布局 - 在内存表扫描中存储分区和排序方案,并将 distributeBy 和 localSort 添加到 DF API
    • SPARK-11778  - DataFrameReader.table 支持指定数据库名称。例如,可以使用 sqlContext.read.table(“dbName.tableName”) 从数据库 “dbName” 中名为 “tableName” 的表创建 DataFrame。
    • SPARK-10947  - 通过从 JSON 推断到 Dataframe 的模式,用户可以将 primitivesAsString 设置为 true(在数据源选项中),以将所有原始值类型推断为 Strings。primitivesAsString 的默认值为 false。
  • 性能
    • SPARK-10000 统一内存管理 - 执行和缓存共享内存,而不是对区域进行独占划分。
    • SPARK-11787 Parquet 性能 - 提高使用平面模式时 Parquet 扫描性能。
    • SPARK-9241  改进了具有不同聚合的查询的查询计划器 - 当不同的列具有高基数时,不同的聚合的查询计划更加健壮。
    • SPARK-9858  自适应查询执行 - 自动选择 join 和聚合的 reducer 数量的初始支持。
    • SPARK-10978 避免在数据源 API 中进行双重过滤 - 在使用过滤器下推实现数据源时,开发人员现在可以告诉 Spark SQL 避免对下推的过滤器进行双重评估。
    • SPARK-11111 快速的 null 安全连接 - 使用 null 安全相等 (<=>) 的连接现在将使用 SortMergeJoin 而不是计算笛卡尔积来执行。
    • SPARK-10917, SPARK-11149 内存列式缓存性能 - 在 DataFrame 或 SQL 中缓存包含复杂类型的数据时,速度显着提高(高达 14 倍)。
    • SPARK-11389 使用堆外内存的 SQL 执行 - 支持配置查询执行以使用堆外内存来避免 GC 开销

Spark Streaming

  • API 更新
    • SPARK-2629  新的改进的状态管理 - mapWithState - 用于有状态流处理的 DStream 转换,在功能和性能上取代了 updateStateByKey
    • SPARK-11198 Kinesis 记录反聚合 - Kinesis 流已升级为使用 KCL 1.4.0 并支持 KPL 聚合记录的透明反聚合。
    • SPARK-10891 Kinesis 消息处理函数 - 允许将任意函数应用于 Kinesis 接收器中的 Kinesis 记录,以便在将数据存储在内存中之前自定义要存储的数据。
    • SPARK-6328  Python Streaming Listener API - 在流式处理中获取流式统计信息(调度延迟、批处理时间等)。
  • UI 改进
    • 在流式处理选项卡、时间线、批处理列表和批处理详细信息页面中,可以查看失败情况。
    • 在流式处理选项卡中,输出操作显示为进度条。

MLlib

  • 新算法/模型
    • SPARK-8518  生存分析 - 用于生存分析的对数线性模型
    • SPARK-9834  最小二乘法的正态方程 - 正态方程求解器,提供类似 R 的模型摘要统计信息
    • SPARK-3147  在线假设检验 - Spark Streaming 框架中的 A/B 测试
    • SPARK-9930  新的特征转换器 - ChiSqSelector、QuantileDiscretizer、SQL transformer
    • SPARK-6517  二分 K-Means 聚类 - K-Means 的快速自上而下聚类变体
  • API 改进
    • ML Pipelines
      • SPARK-6725  Pipeline 持久化 - ML Pipelines 的保存/加载,部分覆盖 spark.ml 算法
      • SPARK-5565  ML Pipelines 中的 LDA - ML Pipelines 中潜在狄利克雷分配的 API
    • R API
      • SPARK-9836  GLM 的类 R 统计信息 - 通过 summary(model) 获得普通最小二乘法的(部分)类 R 统计信息
      • SPARK-9681  R 公式中的特征交互 - R 公式中的交互运算符 “:”
    • Python API - 对 Python API 进行了许多改进,以接近特征对等
  • 其他改进
  • 文档改进
    • SPARK-7751  @since 版本 - 文档包含添加类和方法的初始版本
    • SPARK-11337 可测试的示例代码 - 自动化测试用户指南示例中的代码

弃用

  • 在 spark.mllib.clustering.KMeans 中,“runs” 参数已被弃用。
  • 在 spark.ml.classification.LogisticRegressionModel 和 spark.ml.regression.LinearRegressionModel 中,“weights” 字段已被弃用,取而代之的是新名称 “coefficients”。这有助于消除与算法给定的实例(行)权重之间的歧义。

行为变更

  • MLlib
    • spark.mllib.tree.GradientBoostedTrees validationTol 在 1.6 中更改了语义。以前,它是误差绝对变化的阈值。现在,它类似于 GradientDescent convergenceTol 的行为:对于大误差,它使用相对误差(相对于先前的误差);对于小误差 (< 0.01),它使用绝对误差。
    • spark.ml.feature.RegexTokenizer:以前,它在分词之前不会将字符串转换为小写。现在,它默认转换为小写,并提供不转换的选项。这与更简单的 Tokenizer 转换器的行为相匹配。
  • SQL
    • 已删除禁用 Tungsten 模式和代码生成的标志 (spark.sql.tungsten.enabled)。 Tungsten 模式和代码生成始终处于启用状态 (SPARK-11644)。
    • Spark SQL 的分区发现已更改为仅发现给定路径的子级的分区目录。(即,如果 path="/my/data/x=1"x=1 将不再被视为分区,而仅被视为 x=1 的子级。)可以通过手动指定分区发现应从哪个 basePath 开始来覆盖此行为 (SPARK-11678)。
    • 对于 UDF,如果它具有原始类型输入参数(非空输入参数),则当此参数的值为 null 时,此 UDF 将返回 null (SPARK-11725)。
    • 将整数类型的值转换为时间戳时(例如,将长值转换为时间戳),该值被视为以秒为单位而不是以毫秒为单位 (SPARK-11724)。
    • 对于具有不同聚合的查询,改进了查询计划器 (SPARK-9241),现在具有单个不同聚合的查询计划已更改为更健壮的版本。要切换回 Spark 1.5 的计划器生成的计划,请将 spark.sql.specializeSingleDistinctAggPlanning 设置为 true (SPARK-12077)。
    • 如果给定序号的值为空,则 Row 的 getBoolean, getByte, getShort, getInt, getLong, getFloat 和 getDouble 将抛出 NullPointerException (SPARK-11553)。
    • variance 是 var_samp 的别名,而不是 var_pop (SPARK-11490)。
    • 将 String 类型的值转换为 Boolean 类型值的语义已更改 (SPARK-10442)。转换 “t”、“true”、“y”、“yes” 和 “1” 中的任何一个都将返回 true。转换 “f”、“false”、“n”、“no” 和 “0” 中的任何一个都将返回 false。对于其他 String 字面量,将其转换为 Boolean 类型值将返回 null。
    • 默认情况下,聚合函数 first 和 last 将不会忽略空值 (SPARK-9740)。要使它们忽略空值,用户可以将 first 和 last 的第二个参数设置为 true。例如,first(col, true) 将返回列 col 的第一个非空值。

已知问题

  • SPARK-12546 使用动态分区将 DataFrame/表另存为 Parquet 可能会导致 OOM;这可以通过使用 spark.memory.fraction (例如, 0.4) 和 parquet.memory.pool.ratio (例如,0.3,在 Hadoop 配置中,例如在 core-site.xml 中设置) 来减少 Spark 和 Parquet 使用的内存来解决。

贡献者

最后但同样重要的是,如果没有以下贡献者,这个版本是不可能实现的:Adam Lewandowski, Adam Roberts, Adrian Zhuang, Ahir Reddy, Akash Mishra, Alex Angelini, Alex Bozarth, Alexander Slesarenko, Alexander Ulanov, Alexey Grishchenko, Alok Singh, Anderson De Andrade, Andrew Or, Andrew Ray, Ankur Dave, Artem Aliev, Ashwin Shankar, Ashwin Swaroop, Asoka Diggs, Avrohom Katz, Bartlomiej Alberski, Ben Fradet, Bertrand Dechoux, Bharat Lal, Bhargav Mangipudi, Bill Chambers, Bin Wang, Bo Meng, Brennon York, Bryan Cutler, Burak Yavuz, Calvin Jia, Carson Wang, Carsten Blank, Charles Yeh, Cheng Hao, Cheng Lian, Chris Bannister, Chris Kang, Chris Snow, Christian Kadner, Christian Kurz, Chuan Shao, Cody Koeninger, DB Tsai, Daniel Imfeld, Daniel Jalova, Daoyuan Wang, David Tolpin, Davies Liu, Deming Zhu, Dennis Huo, Derek Dagit, Dilip Biswal, Dmitry Vasilets, Dominik Dahlem, Edoardo Vacchi, Ehsan M.Kermani, Eric Liang, Erick Tryzelaar, Erik Shilts, Eugen Cepoi, Evan Chen, Ewan Leith, Fazlan Nazeem, Fei Wang, Felix Bechstein, Felix Cheung, Feynman Liang, Forest Fang, Frank Rosner, Gabor Liptak, Gaurav Kumar, Glenn Weidner, Greg Lee, Hari Shreedharan, Herman Van Hovell, Holden Karau, Hossein Falaki, Huang Zhaowei, Huaxin Gao, Hurshal Patel, Hyukjin Kwon, Ilya Ganelin, Imran Rashid, Iulian Dragos, Jacek Laskowski, Jacek Lewandowski, Jacker Hu, Jackie MaKing, Jaehong Choi, Jakob Odersky, Jason White, Jayant Shekar, Jean Lyn, Jean-Baptiste Onofre, Jeff Zhang, Jeffrey Naisbitt, Jeroen Schot, JiGao FuJia Li, Jian Feng Zhang, Jie Hu, Jie Huang, Jihong MA, Joseph K. Bradley, Josh Rosen, Josiah Samuel, Jungtaek Lim, Kai Jiang, Kai Jiang, Kai Sasaki, Kai Xin Xiao Lei, Kay Ousterhout, Kent Yao, Kevin Cox, Kevin Yu, Koert Kuipers, Kousuke Saruta, Lex Yu, Liang-Chi Hsieh, Lianhui Wang, Luc Bourlier, Luciano Resende, Lukasz Piepiora, Luvsandondov Lkhamsuren, Maciej Szymkiewicz, Madhusudanan Kandasamy, Mahmoud Lababidi, Manoj Kumar, Marcelo Vanzin, Marius Van Niekerk, Mark Grover, Mark Hamstra, Matei Zaharia, Matt Hagen, Matt Massie, Matthew Cheah, Meihua Wu, Michael Armbrust, Michael Gummelt, Mike Dusenberry, Mikhail Bautin, Mingyu Kim, Monica Liu, Mortada Mehyar, Nakul Jindal, Nan ZhuNarine Kokhlikyan, Nathan Howell, Naveen Kumar Minchu, Navis Ryu, Neelesh Srinivas Salian, Nicholas Chammas, Nick Buroojy, Nick Evans, Nick Pritchard, Nishkam Ravi, Nithin Asokan, Nitin Goyal, Noel Smith, Nong Li, Oscar D. Lara Yejas, Pat Shields, Patrick Wendell, Pete Robbins, Philipp Hoffmann, Prashant Sharma, Pravin Gadakh, R. H., Ram Sriharsha, Rekha Joshi, Rerngvit Yanggratoke, Reynold Xin, Reza Zadeh, Rick Hillegas, Rishabh Bhardwaj, Robin East, Rohit Agarwal, Roy Gao, Ryan Williams, Sachin Aggarwal, Saisai Shao, Sean Owen, Sean Paradiso, Sem Mulder, Sephiroth Lin, Seth Hendrickson, Shagun Sodhani, Shimizu Yoshihiro, Shivaram Venkataraman, Shixiong Zhu, Somil Deshmukh, Srinivasa Reddy Vundela, Stephen De Gennaro, Stephen Hellberg, Stephen Hopper, Stephen Samuel, Steve Loughran, Su Yan, Sun Rui, Suresh Thalamati, Takahashi Hiroshi, Takeshi Yamamuro, Tarek Auel, Tathagata Das, Ted Yu, Teng Qiu, Thomas Graves, Tijo Thomas, Timothy Chen, Timothy Hunter, Tingjun Xu, Todd Wan, Tom Graves, Travis Hegner, Trystan Leftwich, Uncle Gen, Vikas Nelamangala, Vinod KC, Vladimir Vladimirov, Vyacheslav Baranov, Wang Tao, Weiqiang Zhuang, Wenchen Fan, Wenjian Huang, Wieland Hoffmann, Wojciech Indyk, Xiangrui Meng, Xiao LiXin Ren, Xin Wu, Xiu Guo, Xusen Yin, Yadong Qi, Yanbo Liang, Yangping Wu, Yash Datta, Yijie Shen, Yin Huai, Yongjia Wang, Yu Gao, Yu ISHIKAWA, Yuhao Yang, Yuming Wang, Yves Raimond, Zee Chen, Zhenhua Wang, Zhichao Li, Zhongshuai Pei, Zhuo Liu


Spark 新闻存档

最新新闻

存档