K-V型RDD的算子-join算子
join算子是对两个K-V型RDD按照K值做连接操作,生成一个新的K-V型RDD。新RDD中仅包含两个源RDD中同时存在的K,新RDD中的V是由两个源RDD的V组成的二元组。join算子的定义如下:
def join(
self: "RDD[Tuple[K, V]]",
other: "RDD[Tuple[K, U]]",
numPartitions: Optional[int] = None,
) -> "RDD[Tuple[K, Tuple[V, U]]]"
案例:
rdd1 = sc.parallelize(["Hello Python", "Hello Spark You", "Hello Python Spark", "You know PySpark"])
# 从RDD1中筛选包含单词Spark的元素构造一个K-V型RDD:(单词, 词频)
rdd2 = rdd1.filter(lambda x: "Spark" in x.split(" ")).flatMap(lambda x: x.split(" ")).map(lambda x: (x, 1)).reduceByKey(lambda a, b: a + b)
# 从RDD1中筛选不含单词Spark的元素构造一个K-V型RDD:(单词, 单词长度)
rdd3 = rdd1.filter(lambda x: "Spark" not in x.split(" ")).flatMap(lambda x: x.split(" ")).map(lambda x: (x, len(x))).reduceByKey(lambda a, b: a)
rdd4 = rdd2.join(rdd3)
print("RDD2的数据是:", rdd2.collect())
print("RDD3的数据是:", rdd3.collect())
print("RDD4的数据是:", rdd4.collect())
...全文
相关推荐
RDD编程API
简单的RDD编程,便于上手,只适合于小白用户使用,大神绕道
spark-rdd-APi
内容根据spark rdd.scala和ParRDDFunctions.scala源码中rdd顺序整理,包含rdd功能解释。对熟悉spark rdd很有用
Spark经典案例分享[可运行源码]
本文分享了两个Spark经典案例:链接操作案例和二次排序案例。链接操作案例展示了如何通过Spark处理电影评分数据,计算平均评分并与电影信息进行关联,最终筛选出评分高于4.0的电影。案例详细介绍了数据处理的步骤,包括数据读取、转换、分组、聚合和关联操作。二次排序案例则演示了如何通过自定义排序键实现Spark中的二次排序功能,案例中定义了SecondarySortKey类来实现排序逻辑,并通过sortByKey方法完成排序。两个案例均提供了完整的代码实现和运行说明,适合Spark初学者学习和实践。
高清山西煤矿分布图矢量格式免费下载
高清山西煤矿分布图矢量格式免费下载
mongodb-linux-x86_64-amazon2023-8.0.13.tgz
mongodb-linux-x86_64-amazon2023-8.0.13


