Apache Spark 2.3.0 是 2.x 系列中的第四个版本。此版本增加了对结构化流中的连续处理的支持,以及一个全新的 Kubernetes 调度器后端。其他主要更新包括新的 DataSource 和结构化流 v2 API,以及许多 PySpark 性能增强。此外,此版本继续专注于可用性、稳定性和完善,同时解决了大约 1400 个问题。
要下载 Apache Spark 2.3.0,请访问下载页面。 您可以查阅 JIRA 以获取详细的更改。 我们在此处整理了一份高级别更改列表,按主要模块分组。
spark.sql.orc.impl
设置为native
。64KB
JVM 字节码限制INSERT OVERWRITE DIRECTORY
以直接从查询中将数据写入文件系统2.10
的支持0.8.0
,将 Netty 升级到 4.1.17
编程指南:Spark RDD 编程指南和Spark SQL、DataFrames 和 Datasets 指南。
编程指南:结构化流式编程指南。
ClusteringEvaluator
用于调整聚类算法,支持余弦轮廓和平方欧几里德轮廓指标(Scala/Java/Python)FeatureHasher
转换器(Scala/Java/Python)OneHotEncoderEstimator
(Scala/Java/Python)QuantileDiscretizer
(Scala/Java)Bucketizer
(Scala/Java/Python)CrossValidator
和 TrainValidationSplit
可以在拟合时收集所有模型(Scala/Java)。 这允许您检查或保存所有拟合模型。CrossValidator
、TrainValidationSplit,
OneVsRest` 支持 parallelism Param,用于并行 Spark 作业中拟合多个子模型featureSubsetStrategy
Param 添加到 GBTClassifier
和 GBTRegressor
。 使用它来对特征进行二次采样可以显着提高训练速度; 此选项一直是xgboost
的关键优势。Word2Vec
学习率随 num
迭代的缩放。 新的学习率设置为匹配原始 Word2Vec
C 代码,并应从训练中获得更好的结果。JSON
支持(这修复了使用系数边界时 LogisticRegressionModel
的 ML 持久性错误。)Bucketizer.transform
错误地删除包含 NaN
的行。 当 Param handleInvalid
设置为“skip”时,如果另一个(无关的)列具有 NaN
值,则 Bucketizer
将删除输入列中具有有效值的行。StringIndexerModel
在 handleInvalid
设置为“error”时抛出不正确的“Unseen label”异常。 由于谓词下推,这可能发生在过滤数据上,即使在已从输入数据集中过滤掉无效行之后也会导致错误。CrossValidator
的内存消耗TrainValidationSplit
的内存消耗Imputer
应该使用单次数据传递进行训练OnlineLDAOptimizer
避免为每个小批量收集统计信息到驱动程序。编程指南:机器学习库 (MLlib) 指南。
SparkR 在 2.3.0 版本中的主要重点是提高 UDF 的稳定性,并在现有 API 周围添加几个新的 SparkR 包装器
withWatermark
, trigger
, partitionBy
和流-流连接编程指南:SparkR (R on Spark)。
StackOverflowErrors
编程指南:GraphX 编程指南。
SQLContext
和 Catalog
中 UDF 的 register*
OneHotEncoder
已被弃用,并将在 3.0 中删除。 它已被新的 OneHotEncoderEstimator
替换。 请注意,OneHotEncoderEstimator
将在 3.0 中重命名为 OneHotEncoder
(但 OneHotEncoderEstimator
将保留为别名)。NULL
)elt()
返回二进制形式的输出。 否则,它将返回一个字符串。 在早期版本中,无论输入类型如何,它始终以字符串形式返回。functions.concat()
返回二进制形式的输出。 否则,它将返回一个字符串。 在早期版本中,无论输入类型如何,它始终以字符串形式返回。double
类型作为 double
类型和 date
类型的公共类型结束。 现在,它可以为这些冲突找到正确的公共类型。 有关详细信息,请参见迁移指南。percentile_approx
函数先前接受 numeric
类型输入并输出 double
类型结果。 现在,它支持 date
类型、timestamp
类型和 numeric
类型作为输入类型。 结果类型也更改为与输入类型相同,这对于百分位数来说更合理。_corrupt_record
)时,不允许从原始 JSON/CSV 文件进行查询。 相反,您可以缓存或保存已解析的结果,然后发送相同的查询。na.fill()
或 fillna
也接受布尔值,并将空值替换为布尔值。 在以前的 Spark 版本中,PySpark 只是忽略它并返回原始的 Dataset/DataFrame。toPandas
,从 Pandas DataFrame 创建 createDataFrame
等),需要 Pandas 0.19.2
或更高版本。to_replace
不是字典时,df.replace
不允许省略 value
。 以前,可以在其他情况下省略 value
,并且默认情况下为 None
,这不直观且容易出错。LogisticRegressionTrainingSummary
转换为 BinaryLogisticRegressionTrainingSummary
的用户代码而言,这是一个重大更改。 用户应改用 model.binarySummary
方法。 有关更多详细信息,请参见[SPARK-17139](请注意,这是一个 @Experimental
API)。 这不会影响 Python 摘要方法,该方法对于多项式和二进制情况仍然可以正常工作。BinaryClassificationMetrics.pr()
: 第一个点 (0.0, 1.0) 具有误导性,已被 (0.0, p) 替换,其中精度 p 与最低召回率点匹配。RFormula
现在在编码字符串项时输出参考类别。 这可能会更改模型训练的结果。OneVsRest
中使用的默认并行度现在设置为 1(即,串行)。 在 2.2 和更早版本中,并行度设置为 Scala 中的默认线程池大小。 这可能会改变性能。0.13.2
。 其中包括 L-BFGS 强 Wolfe 线搜索中的一个重要的错误修复。OptimizeMetadataOnlyQuery
导致的不正确结果最后但同样重要的是,如果没有以下贡献者,此版本是不可能实现的:ALeksander Eskilson, Adrian Ionescu, Ajay Saini, Ala Luszczak, Albert Jang, Alberto Rodriguez De Lema, Alex Mikhailau, Alexander Istomin, Anderson Osagie, Andrea Zito, Andrew Ash, Andrew Korzhuev, Andrew Ray, Anirudh Ramanathan, Anton Okolnychyi, Arman Yazdani, Armin Braun, Arseniy Tashoyan, Arthur Rand, Atallah Hezbor, Attila Zsolt Piros, Ayush Singh, Bago Amirbekian, Ben Barnard, Bo Meng, Bo Xu, Bogdan Raducanu, Brad Kaiser, Bravo Zhang, Bruce Robbins, Bruce Xu, Bryan Cutler, Burak Yavuz, Carson Wang, Chang Chen, Charles Chen, Cheng Wang, Chenjun Zou, Chenzhao Guo, Chetan Khatri, Chie Hayashida, Chin Han Yu, Chunsheng Ji, Corey Woodfield, Daniel Li, Daniel Van Der Ende, Devaraj K, Dhruve Ashar, Dilip Biswal, Dmitry Parfenchik, Donghui Xu, Dongjoon Hyun, Eren Avsarogullari, Eric Vandenberg, Erik LaBianca, Eyal Farago, Favio Vazquez, Felix Cheung, Feng Liu, Feng Zhu, Fernando Pereira, Fokko Driesprong, Gabor Somogyi, Gene Pang, Gera Shegalov, German Schiavon, Glen Takahashi, Greg Owen, Grzegorz Slowikowski, Guilherme Berger, Guillaume Dardelet, Guo Xiao Long, He Qiao, Henry Robinson, Herman Van Hovell, Hideaki Tanaka, Holden Karau, Huang Tengfei, Huaxin Gao, Hyukjin Kwon, Ilya Matiach, Imran Rashid, Iurii Antykhovych, Ivan Sadikov, Jacek Laskowski, JackYangzg, Jakub Dubovsky, Jakub Nowacki, James Thompson, Jan Vrsovsky, Jane Wang, Jannik Arndt, Jason Taaffe, Jeff Zhang, Jen-Ming Chung, Jia Li, Jia-Xuan Liu, Jin Xing, Jinhua Fu, Jirka Kremser, Joachim Hereth, John Compitello, John Lee, John O’Leary, Jorge Machado, Jose Torres, Joseph K. Bradley, Josh Rosen, Juliusz Sompolski, Kalvin Chau, Kazuaki Ishizaki, Kent Yao, Kento NOZAWA, Kevin Yu, Kirby Linvill, Kohki Nishio, Kousuke Saruta, Kris Mok, Krishna Pandey, Kyle Kelley, Li Jin, Li Yichao, Li Yuanjian, Liang-Chi Hsieh, Lijia Liu, Liu Shaohui, Liu Xian, Liyun Zhang, Louis Lyu, Lubo Zhang, Luca Canali, Maciej Brynski, Maciej Szymkiewicz, Madhukara Phatak, Mahmut CAVDAR, Marcelo Vanzin, Marco Gaido, Marcos P, Marcos P. Sanchez, Mark Petruska, Maryann Xue, Masha Basmanova, Miao Wang, Michael Allman, Michael Armbrust, Michael Gummelt, Michael Mior, Michael Patterson, Michael Styles, Michal Senkyr, Mikhail Sveshnikov, Min Shen, Ming Jiang, Mingjie Tang, Mridul Muralidharan, Nan Zhu, Nathan Kronenfeld, Neil Alexander McQuarrie, Ngone51, Nicholas Chammas, Nick Pentreath, Ohad Raviv, Oleg Danilov, Onur Satici, PJ Fanning, Parth Gandhi, Patrick Woody, Paul Mackles, Peng Meng, Peng Xiao, Pengcheng Liu, Peter Szalai, Pralabh Kumar, Prashant Sharma, Rekha Joshi, Remis Haroon, Reynold Xin, Reza Safi, Riccardo Corbella, Rishabh Bhardwaj, Robert Kruszewski, Ron Hu, Ruben Berenguel Montoro, Ruben Janssen, Rui Zha, Rui Zhan, Ruifeng Zheng, Russell Spitzer, Ryan Blue, Sahil Takiar, Saisai Shao, Sameer Agarwal, Sandor Murakozi, Sanket Chintapalli, Santiago Saavedra, Sathiya Kumar, Sean Owen, Sergei Lebedev, Sergey Serebryakov, Sergey Zhemzhitsky, Seth Hendrickson, Shane Jarvie, Shashwat Anand, Shintaro Murakami, Shivaram Venkataraman, Shixiong Zhu, Shuangshuang Wang, Sid Murching, Sital Kedia, Soonmok Kwon, Srinivasa Reddy Vundela, Stavros Kontopoulos, Steve Loughran, Steven Rand, Sujith, Sujith Jay Nair, Sumedh Wale, Sunitha Kambhampati, Suresh Thalamati, Susan X. Huynh, Takeshi Yamamuro, Takuya UESHIN, Tathagata Das, Tejas Patil, Teng Peng, Thomas Graves, Tim Van Wassenhove, Travis Hegner, Tristan Stevens, Tucker Beck, Valeriy Avanesov, Vinitha Gankidi, Vinod KC, Wang Gengliang, Wayne Zhang, Weichen Xu, Wenchen Fan, Wieland Hoffmann, Wil Selwood, Wing Yew Poon, Xiang Gao, Xianjin YE, Xianyang Liu, Xiao Li, Xiaochen Ouyang, Xiaofeng Lin, Xiaokai Zhao, Xiayun Sun, Xin Lu, Xin Ren, Xingbo Jiang, Yan Facai (Yan Fa Cai), Yan Kit Li, Yanbo Liang, Yash Sharma, Yinan Li, Yong Tang, Youngbin Kim, Yuanjian Li, Yucai Yu, Yuhai Cen, Yuhao Yang, Yuming Wang, Yuval Itzchakov, Zhan Zhang, Zhang A Peng, Zhaokun Liu, Zheng RuiFeng, Zhenhua Wang, Zuo Tingbing, brandonJY, caneGuy, cxzl25, djvulee, eatoncys, heary-cao, ho3rexqj, lizhaoch, maclockard, neoremind, peay, shaofei007, wangjiaochun, zenglinxi0615