PySpark实战:cartesian操作
来自CloudWiki
介绍
cartesian是一个变换操作,
它的调用形式为rdd.cartesian(otherRDD) ,
它返回自身元素和另外一个otherRDD中元素的笛卡尔积。
代码
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([1, 2]) rdd2 = sc.parallelize([3, 7]) rdd3 = sorted(rdd.cartesian(rdd2).collect()) #[(1, 3), (1, 7), (2, 3), (2, 7)] print(rdd3) rdd4 = sorted(rdd2.cartesian(rdd).collect()) #[(3, 1), (3, 2), (7, 1), (7, 2)] print(rdd4) ############################################## sc.stop()
输出
[(1, 3), (1, 7), (2, 3), (2, 7)]
[(3, 1), (3, 2), (7, 1), (7, 2)]