亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

JavaRDD 等價于 GROUP BY

JavaRDD 等價于 GROUP BY

慕婉清6462132 2022-05-25 16:44:54
我有一個包含以下列(Accident_Id、Date、Area)和數百行的 CSV 數據集。我想要實現的是按區域列分組到可能的唯一組中并找到每個組的計數。我知道如何用 SQLContext 做到這一點,但我不確定它是如何用 JavaRDD 實現的,它的動作(map、reduce 等......)SparkConf conf = new SparkConf().setAppName("test").setMaster("local[2]");JavaSparkContext sc = new JavaSparkContext(conf);JavaRDD<String> data = sc.textFile(pathToCSV);...sqlContext.sql("SELECT COUNT(Area) FROM my_table GROUP BY Area").show();
查看完整描述

1 回答

?
慕少森

TA貢獻2019條經驗 獲得超9個贊

您可以簡單地制作一對 RDD 并使用它來按其鍵進行計數。


以下只是假設一個帶有逗號分隔記錄的字符串 RDD:


Map<String, Long> areaCounts = 

    data.mapToPair(s -> new scala.Tuple2<>(s.split(",")[2], 1L)).countByKey();

這會給你area -> count地圖。


如果您更喜歡手動實現歸約邏輯,可以使用reduceByKey:


Map<String, Long> areaCounts = 

    data.mapToPair(s -> new scala.Tuple2<>(s.split(",")[2], 1L))

            .reduceByKey((l1, l2) -> l1 + l2).collectAsMap();


查看完整回答
反對 回復 2022-05-25
  • 1 回答
  • 0 關注
  • 140 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號