Spark Dataframe转换/行动操作

疑惑

最近抛弃了RDD,开始使用Dataframe,主要还是因为使用数据库的原因.在RDD中我们都知道惰性操作,知道RDD转换操作和行动操作的区别,但是到了Dataframe中呢,Dataframe有自己的一系列方法,虽然是万变不离其宗,Dataframe归根结底是一种特殊的RDD,但是很多地方都没有对Dataframe的转换操作和行动操作做介绍.这也是我一直疑惑的

解惑

首先,需要肯定的是Dataframe也是惰性操作的,毕竟是一种RDD,虽然我没有看过源码,但是我想spark不会因为一种结构就抛弃惰性操作这样提高性能的特性.
然后,我们看一下转换操作和行动操作:

Transform:典型的转换操作有读(read),筛选(filter)、拼接(union)等等,只要这个过程只改变DataFrame的形态,而不需要实际取出DataFrame的数据进行计算,都属于转换。理论上来说,ETL过程中的Transfrom过程,主干流程只会有转换操作,不会有Action操作。
Action:典型的动作操作有计数(count),打印表(show),写(write)等,这些操作都需要真正地取出数据,就会触发Spark的计算。

这是我找到的很少介绍dataframe惰性操作的内容,总之还是跟RDD一样,但是没有很具体的介绍到底那些方法属于转换操作,那些属于行动操作,但是我相信大致上还是分的清楚的,实在分不清楚的,看一下官方文档.

猜你喜欢

转载自blog.csdn.net/qq_36865108/article/details/84640122
今日推荐