Spark Core & SparkSQL
- dataframe與dataset統(tǒng)一历葛,dataframe只是dataset[Row]的類型別名,移除dataframe類嘀略。
- dataset增強(qiáng)聚合api
- SparkSession:統(tǒng)一SQLContext和HiveContext
- accumulator功能增強(qiáng):便攜api恤溶、webUI支持,性能提高
- 支持sql2003 標(biāo)準(zhǔn)
- 支持ansi-sql和hive sql的sql parser
- 支持ddl命令
- 支持子查詢
- 支持csv文件
- 支持hive風(fēng)格的bucket表
- 通過whole-stage code genetation技術(shù)將spark sql和dataset的性能提升2~10倍
- 通過vectorization技術(shù)提升parquet文件的掃描吞吐量
- 提升orc文件的讀寫性能
- 提升catalyst查詢優(yōu)化器的性能
- 通過native實現(xiàn)方式提升窗口函數(shù)的性能
- 對某些數(shù)據(jù)源進(jìn)行自動文件合并
Spark MLlib
- Spark MLlib 未來將主要基于dataset api來實現(xiàn)帜羊,基于rdd的api轉(zhuǎn)為維護(hù)階段
- 基于dataframe的api咒程,支持持久化保存和加載模型和pipeline
- 基于dataframe的api,支持更多算法讼育,包括k-means帐姻,高斯混合、maxabsscaler
- spark R 支持mlib算法奶段,包括線性回歸饥瓷,樸素貝葉斯、k-means忧饭、多元回歸等
- pyspark支持更多MLlib算法扛伍,包括LDA筷畦、高斯混合词裤、泛化線性回歸等
- 基于dataframe的api刺洒,向量和矩陣使用性能更高的序列化機(jī)制
Spark Streaming
- 發(fā)布測試版的structured streaming:
基于spark sql和catalyst引擎構(gòu)建
支持使用dataframe風(fēng)格的api進(jìn)行流式計算操作
catalyst 引擎能夠?qū)?zhí)行計劃進(jìn)行優(yōu)化 - 基于DStream的api支持kafka 0.10 版本
依賴管理、打包
- 不再需要在生產(chǎn)環(huán)境部署時打包fat jar吼砂,可以使用provided風(fēng)格
- 完全移除了對akka的依賴(spark 1.6已經(jīng)開始移除一部分)
- mesos粗粒度模式下逆航,支持啟動多個executor
- 支持kryo 3.0版本
- 使用scala 2.11 替代了scala 2.10
移除的功能
- bagel模塊
- 對hadoop2.1 以及之前版本的支持
- 閉包序列化配置的支持
- HTTPBroadcast 的支持
- 基于TTL模式的元數(shù)據(jù)清理支持
- 半私有的org.apache.spark.Logging的使用支持
- SparkContext.metricsSystem API
- 與tachyon的面向block的整合支持
- spark 1.x中標(biāo)記為過期的api
- python dataframe中返回rdd的方法
- 使用很少的streaming數(shù)據(jù)源支持:twitter、akka渔肩、MQTT因俐、ZeroMQ
- hash-based shuffle manager
- standalone master的歷史數(shù)據(jù)的支持功能
- dataframe不再是一個類,而是dataset[Row]的類型別名
變化的機(jī)制
- SQL中的浮點類型周偎,使用decima類型表示抹剩,而不是double類型
- JAVA的flatMap和mapPartition方法,從iterable類型轉(zhuǎn)變?yōu)閕terator類型
- JAVA的countByKey返回<K,Long>類型蓉坎,而不是<K,Object>類型
- 寫parquet文件時澳眷,summary文件默認(rèn)不會寫了,需要開啟參數(shù)來啟用
- spark millib 中蛉艾,基于dataframe的api完全依賴自己钳踊,不在依賴mllib包
過期的API
- mesos的細(xì)粒度支持
- java7支持標(biāo)記為過期,可能2.x未來版本會移除支持
- python 2.6 的支持