spark常用RDD算子 - flatMapToPair

在flatMap算子的基礎上,將結果變成 (a,1)的形式

flatMap算子:
有時候,我們希望對某個元素生成多個元素,實現該功能的操作叫作 flatMap()?
faltMap的函數應用于每一個元素,對于每一個元素返回的是多個元素組成的迭代器
例如我們將數據切分為單詞 ,個人理解就是數據打散

flatMapToPair 示例如下

1 準備一個文本文件 sample_2.txt,內容如下

hadoop hive spark flume
hdfs spark zookeeper storm
flume hue flume hdfs
spark hive hdfs spark
JavaRDD<String> stringJavaRDD = javaSparkContext.textFile("file:///E:/sample_2.txt");
JavaPairRDD<String, Integer> stringIntegerJavaPairRDD = stringJavaRDD.flatMapToPair(new PairFlatMapFunction<String, String, Integer>() {@Overridepublic Iterator<Tuple2<String, Integer>> call(String s) throws Exception {String[] split = s.split("\\s+");System.out.println("^^^^^^^^^^^^^^^^^^^^^^^^^^^");System.out.println(Arrays.asList(split));//輸出 [hadoop, hive, spark, flume]System.out.println("^^^^^^^^^^^^^^^^^^^^^^^^^^^");ArrayList<Tuple2<String, Integer>> objects = new ArrayList<>();for (String str : split) {Tuple2<String, Integer> stringIntegerTuple2 = new Tuple2<>(str, 1);objects.add(stringIntegerTuple2);}return objects.iterator();}});System.out.println(stringIntegerJavaPairRDD.collect());//最終flatMapToPair的結果如下
[(hadoop,1), (hive,1), (spark,1), (flume,1), (hdfs,1), (spark,1), (zookeeper,1), (storm,1), (flume,1), (hue,1), (flume,1), (hdfs,1), (spark,1), (hive,1), (hdfs,1), (spark,1)]

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處:https://dhexx.cn/hk/18449.html

如若內容造成侵權/違法違規/事實不符,請聯系我的編程經驗分享網進行投訴反饋,一經查實,立即刪除!


相關文章:

  • xp系統打印機服務器不可用,WinXP系統添加打印機操作無法完成如何解決?
  • [轉]UIApplicationDelegate分析小結
  • EDIT-SPOOL-臨時變量-已定義變量-COLUMN-PAGESIZE-LINESIZE
  • SpringBoot整合SpringSecurity+Redis權限控制
  • spark常用RDD算子 - reduceByKey
  • unturned服務器消息設置,unturned服務器怎么設置
  • XSS與字符編碼的那些事兒
  • SpringBoot整合EasyExcel+MyBatis-Plus實現Excel批量導入和導出
  • SAP修改前臺屏幕字段文本
  • spark常用RDD算子 - foldByKey
  • SpringBoot整合Shiro+Redis框架權限管理
  • 【Lucene4.8教程之二】索引
  • 自制AutoMapper實現DTO到持久層Entity的轉換
  • spark常用RDD算子 - SortByKey
  • Nginx安裝及使用
  • 成功路很多,選對放心日賺幾百不是問題
  • spark常用RDD算子 - groupByKey
  • SpringBoot整合RabbitMQ消息中間件及多種設計模式
  • LCHub:ChatGPT4和低代碼來臨,程序員面臨下崗?
  • 運行Applet程序
  • Ubuntu12.04編譯Android4.0.1源碼全過程-----附wubi安裝ubuntu編譯android源碼硬盤空間不夠的問題解決...
  • Redis+SpringBoot整合
  • spark常用RDD算子 - cogroup
  • c# Xml反序列化示例
  • 《大話數據結構》圖的BFS和DFS
  • spark常用RDD算子 - 鍵值對關聯操作 subtractByKey, join,fullOuterJoin, rightOuterJoin, leftOuterJoin
  • 樹莓派_Linux串口編程_實現自發自收
  • 3.3FactoryMethod——工廠方法
  • Springboot筆記
  • spark常用RDD算子 - PairRDD的Action操作countByKey, collectAsMap
  • Spring與Hibernate、Mybatis整合
  • 學習ASP.NET MVC(五)——我的第一個ASP.NET MVC CURD頁面
  • SpringCloud學習之路
  • Spark Rdd分區 coalesce()方法和repartition()方法
  • 存儲引擎-存儲結構之二:頁
  • 配置開發支持高并發TCP連接的Linux應用程序全攻略
  • Spark RDD中的寬依賴和窄依賴
  • 學習java虛擬機
  • javascript 設置元素樣式 函數
  • 解決問題
  • Spark RDD Partitioner 分區機制解析
  • MySQL學習日記
  • 【不積跬步,無以致千里】關閉631端口cups打印服務和8009端口ajp
  • 阿里云服務器上安裝mysql的心路歷程(博友們進來看看哦)
  • Spark RDD分區 分區劃分器
  • SpringBoot發送郵件定時任務
  • 4.調個綠豆沙護眼色
  • MAC電腦之搭建lua開發環境
  • Spark RDD 緩存,持久化 cache(),persist()
  • 深入學習存儲過程