Apache Spark版本3.0.0

2020-06-19 04:43:44

Apache Spark 3.0.0是3.x系列的第一个版本。投票于2020年6月10日通过。此版本基于git tag v3.0.0,其中包括截至6月10日的所有承诺。Apache Spark 3.0构建于Spark 2.x的许多创新之上,带来了新的想法,并继续开发中的长期项目。在开源社区的巨大贡献的帮助下,这个版本解决了440多个贡献者的3400多张罚单。

今年是Spark作为开源项目的10周年纪念日。自从2010年首次发布以来,Spark已经成长为最活跃的开源项目之一。如今,Spark实际上是大数据处理、数据科学、机器学习和数据分析工作负载的统一引擎。

Spark SQL是此版本中最活跃的组件。46%的已解决票证是针对Spark SQL的。这些增强功能使所有更高级的库(包括结构化流和MLlib)以及更高级的API(包括SQL和DataFrames)都受益。此版本中添加了各种相关优化。在TPC-DS 30TB基准测试中,Spark 3.0的速度大约是Spark 2.4的两倍。

Python现在是Spark上使用最广泛的语言。PySpark在PyPI(Python Package Index)上的月下载量超过500万次。此版本改进了其功能和可用性,包括使用Python类型提示重新设计Pandas UDF API、新的Pandas UDF类型以及更多Python错误处理。

以下是Spark 3.0中的特性亮点:自适应查询执行;动态分区修剪;ANSI SQL遵从性;Pandas API中的重大改进;用于结构化流式处理的新UI;调用R用户定义函数的最高40倍加速;加速器感知调度器;以及SQL参考文档。

要下载Apache Spark 3.0.0,请访问下载页面。您可以咨询JIRA以了解详细的更改。我们在这里整理了一个高级变更列表,按主要模块分组。

卡夫卡支持卡夫卡批量源和流源v1(SPARK-30656)中的minPartitions选项。

添加允许用户定义和观察批处理和流查询的任意指标的应用编程接口(SPARK-29345)

请阅读每个组件的迁移指南:Spark Core、Spark SQL、Structural Streaming和PySpark。

在Spark 3.0中,已删除不推荐使用的org.apache.partk.sql.Streaming.ProcessingTime类。请改用org.apache.spark.sql.streaming.Trigger.ProcessingTime。同样,org.apache.spark.sql.execution.streaming.continuous.ContinuousTrigger也被移除,取而代之的是Trigger.Continuity,而org.apache.spark.sql.execution.streaming.OneTimeTrigger被隐藏起来,取而代之的是Trigger.Once。(Spark-28199)。

由于Scala 2.12的升级,DataStreamWriter.foreachBatch与Scala程序的源代码不兼容。您需要更新Scala源代码以消除Scala函数和Java lambda之间的歧义。(Spark-26132)。

Binarizer(SPARK-23578)、StringIndexer(SPARK-11215)、StopWordsRemover(SPARK-29808)和PySpark QuantileDiscreizer(SPARK-22796)增加了多列支持。

DecisionTree分类器/回归器(SPARK-19591)、随机森林分类器/回归器(SPARK-9478)、GBT分类器/回归器(SPARK-9612)、回归估值器(SPARK-24102)、二进制分类估值器(SPARK-24103)、分割K均值(SPARK-30351)、KMeans(SPARK-29967)和高斯混合(SPARK-30351)中增加了对样本权重的支持。

在所有的分类模型中,forectRaw都是公开的。除线性SVC模型(SPARK-30358)外,所有分类模型都公开了预测概率。

在Spark 3.0中,Pyspark中的多类Logistic回归现在将(正确地)返回Logistic RegressionSummary,而不是子类BinaryLogistic RegressionSummary。BinaryLogistic RegressionSummary公开的其他方法无论如何在这种情况下都不起作用。(Spark-31681)。

在Spark 3.0中,pypartk.ml.param.shared.has*Mixin不再提供任何set(self,value)setter方法,而是使用各自的self.set(sel.,value)。有关详细信息,请参阅Spark-29093。(Spark-29093)

使用dropDuplates运算符的流查询可能无法使用Spark 2.x写入的检查点重新启动。此问题将在下一版本3.0.1中修复。(Spark-31990)。

在Web UI中,作业列表页可能会挂起40秒以上。此问题将在下一版本3.0.1中修复。(Spark-31967)。

随着AWS SDK升级到1.11.655,我们强烈建议在Hadoop 2.7.3上使用S3N文件系统(基于jets3t库的开源NativeS3FileSystem)的用户升级到使用AWS Signature V4并设置存储桶端点或迁移到S3A(“S3A://”前缀)-jets3t库默认使用AWS v2,s3.amazonaws.com作为端点。否则,在以下情况下可能会抛出403禁止错误:如果用户访问包含“+”字符的S3路径并使用传统的S3N文件系统,例如s3n://bucket/path/+file。

如果用户已将AWS V2签名配置为使用S3N文件系统签署对S3的请求。

请注意,如果您使用S3AFileSystem(例如,“S3A://bucket/path”)在S3Select或SQS连接器中访问S3,那么一切都将按预期进行。(Spark-30968)。

如果缺少Year字段,则使用模式字母‘D’解析年中的第几天会返回错误的结果。这可能发生在像TO_TIMESTAMP这样的SQL函数中,该函数使用模式字符串将日期时间字符串解析为日期时间值。此问题将在下一版本3.0.1中修复。(Spark-31939)。

如果键的值为-0.0和0.0,则子查询内的连接/窗口/聚集可能会导致错误的结果。此问题将在下一版本3.0.1中修复。(Spark-31958)。

窗口查询可能会意外失败,并出现不明确的自联接错误。此问题将在下一版本3.0.1中修复。(Spark-31956)

最后但同样重要的是,如果没有以下贡献者,这个版本是不可能的:Aaruna Godthi,Adam Binford,Adi Muraru,Adrian Tanase,Ajith S,Akshat Bordia,Ala Luszczak,Aleksandr Kashkirov,Alessandro Bellina,Alex Hagerman,Ali Afroozeh,Ali Smesseim,Alon Doron,Aman Omer,Anastasios Zouzias。Bo Hai,Bogdan Git,Boris Boutkov,Boris Shminke,Branden Smith,Brandon Krieger,Brian Scanell,Brooke Venig,Bruce Robbins,Bryan Cutler,Burak Yavuz,Carson Wang,Chaerim Yeo,Chakravarthi,Chandni Singh,Chandu Kavar,Chaoqun Li,陈浩,程炼,毛晨晓,Chitral Veral。马殿军,迪利普·比斯瓦尔,迪马·卡马洛夫,洪冬冬,董俊贤,黄斗勇,道格拉斯·R·科尔基特,德鲁·罗布,迪伦·盖德斯,埃德加·罗德里格斯,埃德维娜·卢,埃米尔·桑斯托,恩里克·米纳克,埃伦·阿夫萨罗古拉利,埃里克·张,埃里克·梁,埃里克·梅塞尔,埃里克·吴,埃里克·克里斯汀森,埃里克·埃兰森,埃里克·埃兰德。高华欣,Huon Wilson,Hyukjin Kuan,Icy三明治,Ievgen Prokhorenko,Igor Calabria,Ilan Filonenko,Ilya Matiach,Imran Rashid,Ivan Gozali,Ivan Vergiliev,Izek Greenfield,Jacek Laskowski,Jackey Lee,Jagadesh Kiran,JalpanRanderi,James Lamb,Jamison Bennett,Jash Gala,Jatin Puri。Julien peloton,Juliusz Sompolski,Jungtaek Lim,Junjie Chen,Justin Uang,Kang,Karthikeyan Singaravelan,Karuppayya Rajendran,Kazuaki Ishizaki,Ke Jia,Keiji Yoshida,Keith Sun,Kengo Seki,Kent姚,Ketan坤de,Kevin Yu,Koert Kuipers,Kousuke Saruta,Kris Mris,Lanao。Martin Junganns,Martin Loncaric,Maryann Xue,Masahiro Kazama,Matt Hawes,Matt Molek,Matt Stillwell,Matthew Cheah,Maxim Gekk,Maxim Kolesnikov,Mellacheruvu SanDeep,Michael Allman,Michael Chirico,Michael Styles,Michal Senkyr,Mick Jermsurawong,Mike Kaplinski,Mingcong han,Mukul Murthy,Nn。欧文·奥马利,Ozan Cicekci,Pablo Langa Blanco,Parker Hegstrom,Parth Chandra,Parth Gandhi,Patrick Brown,Patrick Cording,Patrick Pisciuneri,Pavithra Ramachandran,彭勃,Pengcheng Liu,Petar Petrov,Peter G.Horvath,Peter Parente,Peter Toth,Philipse Guo,Prakhar Jain,Pralabh Kumar,Praneet Shareet。Sahil Takiar,Saisai Shao,Sam Tran,Samuel L.Setegne,SanDeep Katta,Sangram Gaikwad,Sanket Chincapalli,Sanket Reddy,Sarth Frey,Saurabh Chawla,Sean Owen,Sergey Zhemzhitsky,Seth Fitzsimmons,Shahid,Shahin Shakeri,Shane Knapp,Shanyu赵尚宇,施少晨,Sharanabasappa G。如来·达斯,特里·金,托马斯·德席尔瓦,托马斯