转换

回到术语表

什么是转换?

在Spark中,核心数据结构是不可变的这意味着它们一旦创建就不能更改。乍一看,这似乎是一个奇怪的概念,如果你不能改变它,你应该如何使用它?为了“改变”一个DataFrame,你必须指示Spark如何修改你想要的DataFrame。这些指令被称为转换.转换是如何使用Spark表达业务逻辑的核心。有两种类型的转换,一种指定窄依赖项,另一种指定宽依赖项。

什么是窄依赖关系?

包含以下内容的转换狭窄的依赖关系[我们称之为狭义转换]是指每个输入分区只对一个输出分区作出贡献。狭窄的转换

什么是广泛依赖?

一个广泛的依赖[或宽转换]风格的转换将输入分区贡献给许多输出分区。你会经常听到这个被称为a洗牌Spark将在集群中交换分区。使用窄转换,Spark将自动在窄依赖项上执行名为pipelining的操作,这意味着如果我们在dataframe上指定多个过滤器,它们都将在内存中执行。但对于洗牌就不是这样了。当我们执行shuffle时,Spark会将结果写入磁盘。你会在网络上看到很多关于shuffle优化的讨论,因为这是一个重要的话题,但现在你只需要了解有两种类型的转换。广泛的转换

额外的资源


回到术语表