虽然知道得晚了点,但是还是通过Databricks的邮件知道,新版的2.1.0已经发布。
我才刚刚稍微熟悉2.0.X,现在2.1.0已经冒出来~
官网blog: https://databricks.com/blog/2016/12/29/introducing-apache-spark-2-1.html
那2.1.0 有哪些改进呢?
- Structured Streaming 已经可以Production了
- SQL 功能增强
- Mllib for R 增强
原文链接:http://www.flyml.net/2017/01/05/spark-2-1-0-released
Structured Streaming
Structured Streaming 是2.0 引入的一个新Feature,主要是使用结构化的手段来处理流式数据。可以参考这篇文章:http://lxw1234.com/archives/2016/10/772.htm
这个Feature本人不是很懂,具体请参考其他文章
SQL and Core APIs
在2.1之中增加了下面几个功能:
- Table-valued functions: 不知道如何翻译,简称TVF。不过目前应该还是比较弱,只有一个range功能。
比如"SELECT count(*) FROM range(1000)" 会返回1000 - 增强的列分区引用(Enhanced partition column inference)
- 增强的行内表(inline tables):
行内表是也是2.0 引入的一个新功能。举个例子:
"SELECT * FROM VALUES (1, “one”), (1 + 1, “two”)" 结果有两行。发现目前对行内表的介绍还很少~ - Null ordering / Binary literals / MINUS
- to_json and from_json functions:
如果你的列的值是json格式,那么这两个新的函数正好能用上,方便解析内容 - Cross join hint:
这个改动比较狠。Spark 认为,大多数情况下,用户不是真的需要进行join操作。 因此之前写的SQL,比如 "SELECT * FROM a JOIN b" 将会报错,除非- 显示的使用Cross Join申明:"SELECT * FROM a CROSS JOIN b", 或者
- 显示的将“spark.sql.crossJoin.enabled” 设置为true
在API方面,也做了一些增强:
- KeyValueGroupedDataset.mapValues:
不太明确这是干啥用的,官网是说,现在用户可以直接map values,而不需要修改key - Partial aggregation for KeyValueGroupedDataset.reduceGroups:
支持部分聚合(aggregation)从而减少数据shuffle带来的网络IO开销 - Encoder for java.util.Map:
这是一个对Javaer比较方便的改进:现在Encoder也能直接使用Map了,上一篇文章之中的代码可以看到,使用Encoders的时候,还专门定义了java bean. 好麻烦的说~
原文链接:http://www.flyml.net/2017/01/05/spark-2-1-0-released
MLlib and SparkR
俺不用R,这个没啥说的了,主要是新增下面3个算法:
- Locality Sensitive Hashing
- Multiclass Logistic Regression
- Personalized PageRank
本文为原创文章,转载请注明出处
文章评论
I'm extremely inspired with your writing skills as neatly as with the layout on your weblog. Is that this a paid subject matter or did you customize it yourself? Anyway stay up the nice high quality writing, it's uncommon to look a great blog like this one today..
a free theme