亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用spark Context轉成RDD

發布時間:2021-12-16 15:08:45 來源:億速云 閱讀:211 作者:iii 欄目:云計算

這篇文章主要介紹“如何使用spark Context轉成RDD”,在日常操作中,相信很多人在如何使用spark Context轉成RDD問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”如何使用spark Context轉成RDD”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

一. 背景

在spark rdd轉換算子中join和cogroup是有些需要區分的算子轉換,這里使用示例來說明一下。

二. 示例

1.構建List示例數據

List<Tuple2<Integer, String>> studentsList = Arrays.asList(
      new Tuple2<Integer,String>(1,"xufengnian"),
      new Tuple2<Integer,String>(2,"xuyao"),
      new Tuple2<Integer,String>(2,"wangchudong"),
      new Tuple2<Integer,String>(3,"laohuang")
      );

List<Tuple2<Integer, Integer>> scoresList = Arrays.asList(
      new Tuple2<Integer,Integer>(1,100),
      new Tuple2<Integer,Integer>(2,90),
      new Tuple2<Integer,Integer>(3,80),
      new Tuple2<Integer,Integer>(1,101),
      new Tuple2<Integer,Integer>(2,91),
      new Tuple2<Integer,Integer>(3,81),
      new Tuple2<Integer,Integer>(3,71)
      );

2.使用sparkContext轉成RDD

JavaPairRDD<Integer,String> studentsRDD = sc.parallelizePairs(studentsList);
JavaPairRDD<Integer,Integer> scoresRDD = sc.parallelizePairs(scoresList);

//studentsRDD 為:List<Tuple2<Integer, String>>
//(1,xufengnian)(2,xuyao)(2,wangchudong)(3,laohuang),下面進行打印查看

studentsRDD.foreach(new VoidFunction<Tuple2<Integer,String>>(){
   public void call(Tuple2<Integer,String> tuple){
      System.out.println(tuple._1);//1 2 3
      System.out.println(tuple._2);// xufengnian xuyao laohuang
   }
});

3.進行join

/*
前面數據
(1,xufengnian)(2,xuyao)(2,"wangchudong")(3,laohuang)
(1,100)(2,90)(3,80)(1,101)(2,91)(3,81)(3,71)
join之后:
(1,(xufengnian,100))(1,(xufengnian,101))(3,(laohuang,80))(3,(laohuang,81))(3,(laohuang,71))
(2,(xuyao,90))(2,(xuyao,91))(2,(wangchudong,90))(2,(wangchudong,91))
*/
JavaPairRDD<Integer, Tuple2<String, Integer>> studentScores = studentsRDD.join(scoresRDD);
//join為key相同的join,key不變,value變成(string,integer)
studentScores.foreach(new VoidFunction<Tuple2<Integer,Tuple2<String,Integer>>>() {
   
   private static final long serialVersionUID = 1L;

   @Override
   public void call(Tuple2<Integer, Tuple2<String, Integer>> student)
         throws Exception {
      System.out.println("student id: " + student._1);//1 1 3
      System.out.println("student name: " + student._2._1);//xufengnian xufengnian laohuang
      System.out.println("student score: " + student._2._2);//100 101 80
      System.out.println("===================================");
   }
});

4.進行cogroup

/*
前面的數據
(1,xufengnian)(2,xuyao)(2,"wangchudong")(3,laohuang)
(1,100)(2,90)(3,80)(1,101)(2,91)(3,81)(3,71)
cogroup之后:
(1,([xufengnian],[100,101]))  (3,([laohuang],[80,81,71]))  (2,([xuyao,wangchudong],[90,91]))
*/
JavaPairRDD<Integer,Tuple2<Iterable<String>,Iterable<Integer>>> studentScores2 = studentsRDD.cogroup(scoresRDD);
studentScores2.foreach(new VoidFunction<Tuple2<Integer, Tuple2<Iterable<String>, Iterable<Integer>>>>() {
   @Override
   public void call(Tuple2<Integer, Tuple2<Iterable<String>, Iterable<Integer>>> stu) throws Exception {
      System.out.println("stu id:"+stu._1);//1 3
      System.out.println("stu name:"+stu._2._1);//[xufengnian] [laohuang]
      System.out.println("stu score:"+stu._2._2);//[100,101] [80,81,71]
      Iterable<Integer> integers = stu._2._2;

      for (Iterator iter = integers.iterator(); iter.hasNext();) {
         Integer str = (Integer)iter.next();
         System.out.println(str);//100 101 80 81 71
      }
      System.out.println("===================================");
   }
});

到此,關于“如何使用spark Context轉成RDD”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

巨野县| 固始县| 德阳市| 拉萨市| 航空| 丰镇市| 杨浦区| 惠州市| 扶风县| 江西省| 常熟市| 定结县| 准格尔旗| 搜索| 百色市| 平潭县| 酒泉市| 红桥区| 蒙阴县| 甘泉县| 偏关县| 青铜峡市| 荆门市| 福海县| 金山区| 扶绥县| 措勤县| 阳春市| 治县。| 宜州市| 梨树县| 永吉县| 勐海县| 鹤山市| 浦江县| 突泉县| 吉首市| 鄂尔多斯市| 达日县| 微山县| 鹤庆县|