cartesian,中文名跪削,笛卡爾乘積
比如說兩個RDD谴仙,分別有10條數(shù)據(jù),用了cartesian算子以后 碾盐,兩個RDD的每一條數(shù)據(jù)都會和另外一個RDD的每一條數(shù)據(jù)執(zhí)行一次join 最終組成了一個笛卡爾乘積
小案例
比如說晃跺,現(xiàn)在5件衣服,5條褲子毫玖,分別屬于兩個RDD 掀虎,就是說凌盯,需要對每件衣服都和每天褲子做一次join,嘗試進行服裝搭配
public class Cartesian {
public static void main(String[] args) {
SparkConf conf = new SparkConf()
.setAppName("Cartesian")
.setMaster("local");
JavaSparkContext sc = new JavaSparkContext(conf);
List<String> clothes = Arrays.asList("夾克", "T恤", "皮衣", "風(fēng)衣");
JavaRDD<String> clothesRDD = sc.parallelize(clothes);
List<String> trousers = Arrays.asList("皮褲", "運動褲", "牛仔褲", "休閑褲");
JavaRDD<String> trousersRDD = sc.parallelize(trousers);
JavaPairRDD<String, String> pairsRDD = clothesRDD.cartesian(trousersRDD);
for(Tuple2<String, String> pair : pairsRDD.collect()) {
System.out.println(pair);
}
}
}