PySpark实战:mapValues操作
来自CloudWiki
介绍
mapValues操作是一个变换算子,
它的作用是对KV格式的RDD中的每个元素应用函数func
这个过程汇总不会更改键K ,同时也保留了原始RDD的分区。
代码
import findspark findspark.init() ############################################## from pyspark.sql import SparkSession spark = SparkSession.builder \ .master("local[1]") \ .appName("RDD Demo") \ .getOrCreate(); sc = spark.sparkContext ############################################# rdd = sc.parallelize([("a", ["hello", "spark", "!"]), ("b", ["cumt"])]) def f(x): #['hello', 'spark', '!'] #['cumt'] print(x) return len(x) rdd2 = rdd.mapValues(f) #[('a', 3), ('b', 1)] print(rdd2.collect()) ############################################## sc.stop()
- 对KV键值对的每一个值执行f函数,原来的键不变,形成一个新的rdd(rdd2)
输出
[('a', 3), ('b', 1)]