Transformation(转换):Transformation属于延迟计算,当一个RDD转换成另一个RDD时并没有立即进行转换,仅仅是记住了数据集的逻辑操作

spark 的动作运算

https://www.168seo.cn/pyspark/24809.html

map

将函数作用于数据集的每一个元素上,生成一个分布式的数据集返回

结果是:

Pyspark rdd 常用的转换 Transformation  Pyspark(二)-新乡seo|网站优化,网站建设_微信公众号:zeropython—昊天博客

filter

返回所有 funtion 返回值为True的函数,生成一个分布式的数据集返回

Pyspark rdd 常用的转换 Transformation  Pyspark(二)-新乡seo|网站优化,网站建设_微信公众号:zeropython—昊天博客

flatMap

Return a new RDD by first applying a function to all elements of this
RDD, and then flattening the results.

Pyspark rdd 常用的转换 Transformation  Pyspark(二)-新乡seo|网站优化,网站建设_微信公众号:zeropython—昊天博客

groupBykey

按照相同key的数据分成一组

Pyspark rdd 常用的转换 Transformation  Pyspark(二)-新乡seo|网站优化,网站建设_微信公众号:zeropython—昊天博客

groupBy运算
groupBy运算可以按照传入匿名函数的规则,将数据分为多个Array。比如下面的代码将intRDD分为偶数和奇数:

输出为:

reduceBykey

把相同的key 的数据分发到一起 并进行运算

Pyspark rdd 常用的转换 Transformation  Pyspark(二)-新乡seo|网站优化,网站建设_微信公众号:zeropython—昊天博客

sortbykey

Pyspark rdd 常用的转换 Transformation  Pyspark(二)-新乡seo|网站优化,网站建设_微信公众号:zeropython—昊天博客

union

distinct

join

leftOuterJoin

rightOuterJoin

fullOuterJoin

randomSplit运算

randomSplit 运算将整个集合以随机数的方式按照比例分为多个RDD,比如按照0.4和0.6的比例将intRDD分为两个RDD,并输出:

输出为:

多个RDD转换运算

RDD也支持执行多个RDD的运算,这里,我们定义三个RDD:

并集运算

可以使用union函数进行并集运算:

输出为:

交集运算

可以使用intersection进行交集运算:

两个集合中只有一个相同元素5,所以输出为:

差集运算

subtract(减去 去除)
可以使用subtract函数进行差集运算:

由于两个RDD的重复部分为5,所以输出为[1,2,3]:

笛卡尔积运算

笛卡尔乘积是指在数学中,两个集合X和Y的笛卡尓积(Cartesian product),又称直积,表示为X × Y,第一个对象是X的成员而第二个对象是Y的所有可能有序对的其中一个成员

笛卡尔积又叫笛卡尔乘积,是一个叫笛卡尔的人提出来的。 简单的说就是两个集合相乘的结果。
假设集合A={a, b},集合B={0, 1, 2},则两个集合的笛卡尔积为{(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}。

可以使用cartesian函数进行笛卡尔乘积运算:

由于两个RDD分别有5个元素和2个元素,所以返回结果有10各元素: