PySpark实战:keyBy操作

来自CloudWiki
跳转至: 导航搜索

介绍

keyBy操作是一个变换算子,

它通过在RDD上应用函数func,其中将原有RDD中的元素作为value,该key通过func函数返回的值作为key创建一个元组,并返回一个新的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(range(0,3))
#[0, 1, 2]
print(rdd.collect())
def f(x):
        #0, 1, 2
        print(x)
        #0, 1, 4
        return x * x
        
rdd = rdd.keyBy(f)
#[(0, 0), (1, 1), (4, 2)]
print(rdd.collect())
##############################################
sc.stop()

输出

[0, 1, 2]
0
1
2
[(0, 0), (1, 1), (4, 2)]