Pyspark学习笔记(五)RDD操作(三)_键值对RDD转换操作

本文详细介绍了Pyspark中键值对RDD的转换操作,包括keys(), values(), keyBy(), mapValues(), flatMapValues(), sortByKey(), groupByKey(), reduceByKey(), foldByKey(), 和 aggregateByKey()等,并通过实例展示了每种操作的用法和效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述


Pyspark学习笔记(五)RDD操作(三)_键值对RDD转换操作


# 前言 提示:本篇博客讲的是键值对RDD的转换操作,即 PariRDD Transformations

主要参考链接:
1.Apache spark python api
2.Spark Pair-RDD Actions with examples

一、PySpark RDD 行动操作简介

    键值对RDD,也就是PariRDD, 它的记录由组成。
键(Key):可以是整型(INT)或者字符串(STRING)对象,也可以是元组这种复杂的对象。
值(Value):可以是标量,也可以是列表(List),元组(Tuple),字典(Dictionary)或者集合(Set)这些数据结构
首先要明确的是键值对RDD也是RDD,所以之前讲过的RDD的转换和行动操作,肯定也适用于键值对RDD;
但是键值对RDD由于其组织形式的特殊性,也有其自己专属的一些转换操作。
下面将介绍一些常用的键值对转换操作(注意是转换操作,所以是会返回新的RDD)

二.常见的转换操作表 & 使用例子

0.初始的示例rdd,

我们这里以第七次全国人口普查人口性别构成中的部分数据作为示例

[ ('Beijing', [51.14, 48.86, 104.65]), ('Shanghai',[51.77, 48.23, 107.33]), ('Guangdong', [53.07, 46.93, 113.08]), ('Jiangsu', [50.78, 49.22, 103.15])]
该RDD就是键值对RDD,每个元素是一个键值对,键(key)为省份名,值(Value)为一个list

1.keys()

该函数返回键值对RDD中,所有键(key)组成的RDD
pyspark.RDD.keys

# the example of keys
print("rdd_test_keys\n", rdd_test.keys().collect())
# out
['Beijing', 'Shanghai', 'Guangdong', 'Jiangsu']

2.values()

该函数返回键值对RDD中,所有值(values)组成的RDD
pyspark.RDD.values

# the example of values
print("rdd_test_values\n", rdd_test.values().collect())
# out
[ [51.14, 48.86, 104.65], [51.77, 48.23, 107.33], [53.07, 46.93, 113.08], [50.78, 49.22, 103.15] ]

3.keyBy(func)

该操作返回一个新的键值对RDD,
该RDD的键(key)是使用函数提取出的结果作为新的键,
该RDD的值(value)是原始pair-RDD的值作为值。
pyspark.RDD.keyBy

# the example of keyBy
print("rdd_test_keyBy\n", rdd_test.keyBy(lambda x: x[1][2]).collect())

[ (104.65, ('Beijing', [51.14, 48.86, 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值