Spark Release 2.*.* 新特性及修复的bug

Spark Release 2.0.0

Apache Spark 2.0.0是在2.*主线的第一次发布。主要更新包括API可用性,SQL 2003支持,性能改进,结构化流式处理,R UDF支持以及操作改进。此外,此版本包括超过300个贡献者的超过2500个补丁。
我们策划了一个高级别的更改列表,按主要模块分组。

API Stability

Apache Spark 2.0.0是2.X主要版本的第一个版本。Spark保证所有2.X版本的非实验性API的稳定性。虽然API保持在很大程度上类似于1.X,Spark 2.0.0确实有API突破性的改变。 这些将在 Removals, Behavior Changes and Deprecations 部分阐述。

Core and Spark SQL

Programming APIs
Spark 2.0中最大的变化之一是新的更新的API。

  • 统一DataFrame和Dataset:在Scala和Java中,DataFrame和Dataset已经统一,即DataFrame只是Row的Dataset的类型别名。 在Python和R中,由于缺少类型安全性,DataFrame是主要的编程接口。
  • SparkSession:新的入口点,用于替换DataFrame和Dataset API的旧SQLContext和HiveContext。 保留SQLContext和HiveContext以实现向后兼容。
  • SparkSession的新的,精简的配置API。
  • 更简单,更高性能的累加器API。
  • 用于数据集中类型化聚合的新的改进的Aggregator API。

SQL
Spark 2.0使用SQL2003支持大大提高了SQL功能。 Spark SQL现在可以运行所有99个TPC-DS查询。 更重要的是,我们已经改进:

  • 一个支持ANSI-SQL以及Hive QL的本机SQL解析器。
  • 本机DDL命令实现。
  • 子查询支持,包括:
不相关的标量子查询。
相关的标量子查询。
NOT IN 谓词子查询(在WHERE / HAVING子句中)。
IN 谓词子查询(在WHERE / HAVING子句中)。
(NOT) EXISTS谓词子查询(在WHERE / HAVING子句中)。
  • 支持视图规范化。

当编译的时候没有加入Hive的支持(也就是没加入-Phive),Spark SQL将支持几乎所有Hive支持的功能,除了Hive连接,Hive UDF和脚本转换。

新特性
  • 本机CSV数据源,基于Databricks的spark-csv模块。
  • 用于缓存和运行时执行的堆外内存管理。
  • 支持Hive风格的bucketing。
  • 使用sketches进行粗略的总结统计(Approximate summary statistics),包括approximate quantile, Bloom filter以及count-min sketch。
Performance and Runtime
  • 常见的SQL操作和DataFrame通过一个称为whole stage code generation技术之后有了实质性的性能提升(大约有2-10x);
  • 通过vectorization技术提升了Parquet文件扫描的吞吐量;
  • 在Catalyst query optimizer中为常见的工作流(common workloads)进行了优化;
  • 通过内置实现所有的窗口函数来提升Windows的性能;
  • 为内置的数据源进行自动地文件合并。
MLlib

现在基于DataFrame的API是主要的API了。而基于RDD的API已经进入到维护阶段。详细细节请参考MLlib用户指南。

SparkR
Streaming

Spark 2.0开始引入了实验性的Structured Streaming,它是构建在Spark SQL和Catalyst optimizer之上的高级streaming API。Structured Streaming使得用户可以在流数据的sources和sinks使用静态的数据源一样的DataFrame/Dataset API,并使用Catalyst optimizer自动生成查询计划。

在DStream API方面,最大的更新是支持Kafka 0.10。

Dependency, Packaging, and Operations

Spark的操作和打包过程有很多的改变:

1、Spark 2.0在生产部署的时候不再需要fat assembly jar;

2、Akka的依赖已经被全部移除了。所以用户的程序可以引入任何版本的Akka;

3、Kryo的版本升级到3.0;

4、编译时默认使用Scala 2.11而不是2.10。

Removals, Behavior Changes and Deprecations

Spark Release 2.1.0

原文链接:
Spark Release 2.0.0
Apache Spark 2.0.0正式发布及其更新介绍;
Spark Release 2.1.0
Apache Spark 2.1.0正式发布
Apache Spark下载及发布特性官网地址

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Spark 3.x与Spark 2.x的区别主要有以下几点: 1. 支持Python 3:Spark 3.x支持Python 3,而Spark 2.x只支持Python 2。 2. 更好的性能:Spark 3.x在性能方面有所提升,包括更快的查询速度和更高的并行度。 3. 更好的SQL支持:Spark 3.x引入了一些新的SQL功能,包括ANSI SQL支持、更好的窗口函数支持和更好的类型推断。 4. 更好的流处理支持:Spark 3.x引入了一些新的流处理功能,包括更好的状态管理和更好的容错性。 5. 更好的机器学习支持:Spark 3.x引入了一些新的机器学习功能,包括更好的特征工程支持和更好的模型解释性。 总的来说,Spark 3.x相对于Spark 2.x来说是一个更加成熟和功能更加丰富的版本。 ### 回答2: Spark 3.x与Spark 2.x有很多显著的不同之处。 首先,Spark 3.x通过引入新的API和更好的优化器提高了性能和可伸缩性。 其次,它更易于使用,使开发人员更容易使用Spark构建复杂的应用程序。以下是Spark 3.x与Spark 2.x的主要区别: 1.新的API: Spark 3.x引入了一些新的API,如Delta Lake、Kubernetes、Pandas UDF等。Delta Lake是一个开源数据湖解决方案,使数据管理、可靠性和性能变得更加容易。有了Kubernetes,Spark可以更好地与容器化环境集成。同时,Pandas UDF支持Python的Pandas库,可以处理大量的数据。 2.优化器的改进: Spark 3.x引入了新的优化器(称为Spark 3.0 Optimizer),可显著提高查询性能。这个优化器使用基于规则的优化技术和成本模型,通过优化查询来提高查询性能。 3.支持更多的数据源: Spark 3.x做了很多工作来改进数据源API。它提供了更广泛的数据源支持,包括Apache Kafka、Amazon S3、Google BigQuery等。 4.增强了机器学习功能: Spark 3.x提供了更多的基于机器学习的库和工具,包括Python的Pandas和Scikit-Learn库的元数据集成,支持PySpark的PythonML库等。 5.交互式查询支持: Spark 3.x引入了新的交互式查询API,这使得Spark变得更加友好。您可以使用Spark SQL进行查询,该工具支持批处理和流处理查询。 总之,Spark 3.x相比Spark 2.x更加强大和易于使用。它提供了更多的API、更好的优化器和更好的可扩展性。这些变化使得Spark在处理大数据方面更加卓越,让开发人员更轻松地构建复杂的应用程序。 ### 回答3: Apache Spark是一个快速、通用,基于内存的分布式计算系统,已成为大数据领域中最受欢迎的计算框架之一。Spark 3.x是Apache Spark计算框架的最新版本,相比于之前的版本有很多新的特性和功能,以下是Spark 3.x与Spark 2.x的主要区别。 1. Python API重构 Python是Apache Spark中最受欢迎的编程语言,但它在之前的版本中没有得到很好的支持。在Spark 3.x中,Python API被重构,在性能和易用性方面都有了大幅改善。 2. 完全支持SQL ANSI标准 Spark 3.x从核心到应用都支持SQL ANSI标准。这意味着,Spark 3.x支持更多的SQL函数和操作,并且更加符合SQL标准。 3. 兼容性增强 Spark 3.x不再依赖于Hadoop,这意味着它能够更好地与其他数据源进行集成。同时,它也支持Kubernetes和Docker的容器化部署方式。 4. AI支持增加 Spark 3.x引入了许多新的机器学习和深度学习算法,例如支持自动编码器和多标签分类器的模型,以及更好的分布式模型训练功能。 5. 其它特性 Spark 3.x还支持Delta Lake,这是一个可靠、高性能的事务性存储。同时,它还提供性能更好的Spark流式处理API和更好的结构化API,这些API在处理大规模结构化数据时更加高效。 总之,Spark 3.x相比于Spark 2.x在性能、兼容性、AI支持和其它特性方面都有很大的改进。无论是开发人员还是数据科学家,Spark 3.x都能够提供更好的用户体验和更高的数据处理效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值