亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

幾種方式實現(xiàn)WordCount

neroneroffy / 1550人閱讀

摘要:精簡的命令一次性展示出文本內(nèi)容將文本中空格使用回車鍵替換串聯(lián)排序所有指定文件并將結(jié)果寫到標(biāo)準(zhǔn)輸出。

精簡的Shell
cat  /home/sev7e0/access.log | tr -s " " "
" | sort | uniq -c | sort -r | awk "{print $2, $1}"
#cat  命令一次性展示出文本內(nèi)容
#tr -s " " "
"  將文本中空格使用回車鍵替換
#sort   串聯(lián)排序所有指定文件并將結(jié)果寫到標(biāo)準(zhǔn)輸出。
#uniq -c    從輸入文件或者標(biāo)準(zhǔn)輸入中篩選相鄰的匹配行并寫入到輸出文件或標(biāo)準(zhǔn)輸出,-c 在每行前加上表示相應(yīng)行目出現(xiàn)次數(shù)的前綴編號
#sort | uniq -c     同時使用用來統(tǒng)計出現(xiàn)的次數(shù)
#sort -r    把結(jié)果逆序排列
#awk "{print $2,$1}"    將結(jié)果輸出,文本在前,計數(shù)在后
Scala
import scala.io.Source._
val file = fromFile("/home/hadoopadmin/test.txt")
val map = file.getLines().toList.flatMap(_.split(" ")).map((_,1)).groupBy(_._1)
val value = map.mapValues(_.size)
value.foreach(println(_))
反人類的MapReduce
//mapreduce方式
public static void main(String[] args) throws Exception {

    Configuration conf = new Configuration();
//        conf.set("fs.defaultFS", "hdfs://spark01:9000");
//        conf.set("yarn.resourcemanager.hostname", "spark01");

    Path out = new Path(args[1]);
    FileSystem fs = FileSystem.get(conf);

    //判斷輸出路徑是否存在,當(dāng)路徑存在時mapreduce會報錯
    if (fs.exists(out)) {
        fs.delete(out, true);
        System.out.println("ouput is exit  will delete");
    }
    
    // 創(chuàng)建任務(wù)
    Job job = Job.getInstance(conf, "wordcountDemo");
    // 設(shè)置job的主類
    job.setJarByClass(WordCount.class); // 主類

    // 設(shè)置作業(yè)的輸入路徑
    FileInputFormat.setInputPaths(job, new Path(args[0]));

    //設(shè)置map的相關(guān)參數(shù)
    job.setMapperClass(WordCountMapper.class);
    job.setMapOutputKeyClass(Text.class);
    job.setMapOutputValueClass(LongWritable.class);
    
    //設(shè)置reduce相關(guān)參數(shù)
    job.setReducerClass(WordCountReduce.class);
    job.setOutputKeyClass(Text.class);
    job.setOutputValueClass(LongWritable.class);

    //設(shè)置作業(yè)的輸出路徑
    FileOutputFormat.setOutputPath(job, out);
    job.setNumReduceTasks(2);
    System.exit(job.waitForCompletion(true) ? 0 : 1);
}
好用的spark
//spark版wordcount
sc.textFile("/home/sev7e0/access.log").flatMap(_.split(" ")).map((_, 1)).reduceByKey(_+_).foreach(println(_))

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/71768.html

相關(guān)文章

  • Apache Beam學(xué)習(xí)筆記——幾種常見的處理類Transform

    摘要:要說在中常見的函數(shù)是哪一個,當(dāng)然是。是一個實現(xiàn)了接口的抽象類,其中是數(shù)據(jù)處理方法,強(qiáng)制子類必須實現(xiàn)。以上為學(xué)習(xí)一天的總結(jié),有錯誤歡迎指正。相同的是這個方法處理的都是中的一個元素。 在閱讀本文前,可先看一下官方的WordCount代碼, 對Apache Beam有大概的了解。 要說在Apache Beam中常見的函數(shù)是哪一個,當(dāng)然是apply()。常見的寫法如下: [Final Outp...

    Chiclaim 評論0 收藏0
  • Flink 源碼解析 —— 分析 Batch WordCount 程序的執(zhí)行過程

    摘要:批處理的程序分析博客從到學(xué)習(xí)介紹從到學(xué)習(xí)上搭建環(huán)境并構(gòu)建運(yùn)行簡單程序入門從到學(xué)習(xí)配置文件詳解從到學(xué)習(xí)介紹從到學(xué)習(xí)如何自定義從到學(xué)習(xí)介紹從到學(xué)習(xí)如何自定義從到學(xué)習(xí)轉(zhuǎn)換從到學(xué)習(xí)介紹中的從到學(xué)習(xí)中的幾種詳解從到學(xué)習(xí)讀取數(shù)據(jù)寫入到從到學(xué)習(xí)項 批處理的 WordCount 程序分析: https://t.zsxq.com/YJ2Zrfi 博客 1、Flink 從0到1學(xué)習(xí) —— Apache ...

    LdhAndroid 評論0 收藏0
  • 自動化測試工具

    摘要:自己寫一個程序來自動生成測試數(shù)據(jù),因為每個個人作業(yè)的要求不一樣,自動化框架無法對每種程序都生成測試數(shù)據(jù),目前只支持生成按規(guī)則生成隨機(jī)的字符串測試集。 作者:Grey...

    tuniutech 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<