Apache Spark 2.0已发布,具有更新的SQL支持,结构化流和更好的性能。
自发布以来,Apache Spark是一个开源数据处理引擎,已经非常流行。据Apache称,它提高了Hadoop MapReduce的性能,使程序在内存中的运行速度提高了100倍,在磁盘上的运行速度提高了10倍。下图显示了Hadoop和Spark中的逻辑回归(根据Apache)。
新版本通过新的ANSI SQL解析器和对子查询的支持,改进了对标准SQL的支持。解析器支持ANSI-SQL和Hive QL,而子查询支持则涵盖不相关和相关的标量子查询。不在谓词子查询中;在谓词子查询中;和(NOT)EXISTS谓词子查询。
对SQL:2003的支持意味着Spark 2.0可以运行所有99个TPC-DS查询,并且从更广泛的意义上讲,它将使使用SQL的应用程序移植到Spark变得更加容易。
对于此(以及所有2.X)版本,Spark保证其非实验API的稳定性。关于API的工作很广泛,DataFrame和Dataset在Scala和Java中是统一的。在Python和R中,由于缺乏类型安全性,DataFrame是主要的编程接口。
SparkSession API也已经过重新设计,并具有一个替代SQLContext和HiveContext的新入口点。还对累加器API进行了重新设计,使其具有更简单的类型层次结构,并支持原始类型的特殊化。
在机器学习领域,开发人员说,带有“管道” API的spark.ml软件包将成为主要的机器学习API,未来开发的重点将是基于DataFrame的API。
还增加了管道持久性,因此用户可以跨Spark支持的所有编程语言保存和加载机器学习管道和模型。MLlib是Spark的可扩展机器学习库。它适合Spark的API,并与Python中的NumPy互操作(从Spark 0.9开始)。您可以使用任何Hadoop数据源(例如HDFS,HBase或本地文件),从而轻松插入Hadoop工作流。
此版本中SparkR的最大改进是对用户定义函数的支持。根据发行说明,有三个用户定义的函数:dapply,gapply和lapply。前两个可用于使用dapply和gapply进行基于分区的UDF,例如分区模型学习。后者可用于进行超参数调整。
R支持的其他增强功能增加了在R中使用广义线性模型(GLM),朴素贝叶斯,生存回归和K均值的能力。
添加了基于Spark SQL和Catalyst优化器构建的结构化流API。这意味着您可以使用与静态数据源中相同的DataFrame / Dataset API针对流源和接收器进行编程。这将利用Catalyst优化器自动递增查询计划。
新版本可从Apache Spark或Databricks上获得,Databricks团队近几个月来一直在其中为Spark做出贡献。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。