云栖大会 | Apache Spark 3.0 和 Koalas 最新进展
Posted 过往记忆大数据
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了云栖大会 | Apache Spark 3.0 和 Koalas 最新进展相关的知识,希望对你有一定的参考价值。
世界级的知乎 stackoverflow 中当年 Spark 和 PySpark 排名都很靠前,10年累计排名 Apache Spark 第一,Apache Hadoop 第二;未来 Apache Spark 和 PySpark 将会垄断世界。
动态分区裁减
自适应
Spark Graph
加速感应调度(GPU,具体参见 )
Spark on k8s
DataSource API V2
ANSI SQL 兼容
SQL Hints
Vectorization in SparkR
JDK 11
Hadoop 3
-
Scala 2.12
在 Spark 2.x 里面加了基于代价的优化,但是这个并不表现的很好。主要有以下几个原因:
统计信息的缺失;
统计信息过期;
-
很难抽象出一个通用的 cost model。
第一个就是动态分区裁减
比如上面的 SQL 查询,假设 t2 表 t2.id < 2 过滤出来的数据比较少,但是由于之前版本的 Spark 无法进行动态计算代价,所以可能会导致 t1 表扫描出大量无效的数据。有了动态分区裁减,可以在运行的时候过滤掉 t1 表无用的数据
第二个优化就是 AE(详情可以参见 )。
比如下面的查询,基于代价的模型优化不可能准确的评估,
而有了 AE 之后,Spark 就可以动态统计相关信息,并动态调整执行计划,比如把 SortMergeJoin 变成 BroadcastHashJoin:
Spark 在诞生之初就定位于统一的大数据处理引擎。
数据处理主要经过以下三个阶段
商业智能
大数据分析
数据统一 + AI
Spark 主要面对的是两个群体:数据工程师和数据科学家。
近几年 Python 的使用者越来越多了,也导致越来越多的用户使用 pandas 来进行数据分析。但是 pandas 主要是解决小数据量的分析,当数据量大的时候,分析性能急剧下降。而为了进行大数据量的分析时,不得不学习新的计算引擎。
为了解决这个问题,Spark 开源了 koalas,其和 pandas 无缝兼容(koalas 的详细信息可以参见 )。下面就是自 koalas 开源以来的单日下载量:
PySpark 作为数据分析的工具,单日下载量也在逐渐增加。
下面是 PySpark DataFrame 和 pandas DataFrame 的区别:
下面是一个使用例子对比,主要是读取一个 csv 文件,并重命名列的名字,最后再添加一个新的列:
可以看出,PySpark 相比 pandas 来说使用起来还是很麻烦,使用 pandas 的用户不得不学习新的 API,但是有了 koalas ,这个问题不存在了:
下面我们来介绍数据工程
在数据工程方面,数砖开源了 Delta Lake(具体参见 ):
Delta Lake 并不是凭空产生的,而是基于成千上万的用户痛点总结出来的。Delta Lake 的使用也很方面,直接把 parquet 替换成 delta:
下面主要介绍 Delta Lake 的特性
下面是 Delta Lake 的三个用户使用场景:
下面是数砖 Delta 的使用情况:
新福利:
上周获奖名单:ZRTX
1、
2、
3、
4、
以上是关于云栖大会 | Apache Spark 3.0 和 Koalas 最新进展的主要内容,如果未能解决你的问题,请参考以下文章