摘要:精簡(jiǎn)的命令一次性展示出文本內(nèi)容將文本中空格使用回車鍵替換串聯(lián)排序所有指定文件并將結(jié)果寫(xiě)到標(biāo)準(zhǔn)輸出。
精簡(jiǎ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é)果寫(xiě)到標(biāo)準(zhǔn)輸出。 #uniq -c 從輸入文件或者標(biāo)準(zhǔn)輸入中篩選相鄰的匹配行并寫(xiě)入到輸出文件或標(biāo)準(zhǔn)輸出,-c 在每行前加上表示相應(yīng)行目出現(xiàn)次數(shù)的前綴編號(hào) #sort | uniq -c 同時(shí)使用用來(lái)統(tǒng)計(jì)出現(xiàn)的次數(shù) #sort -r 把結(jié)果逆序排列 #awk "{print $2,$1}" 將結(jié)果輸出,文本在前,計(jì)數(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)路徑存在時(shí)mapreduce會(huì)報(bào)錯(cuò) 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)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/71768.html
摘要:要說(shuō)在中常見(jiàn)的函數(shù)是哪一個(gè),當(dāng)然是。是一個(gè)實(shí)現(xiàn)了接口的抽象類,其中是數(shù)據(jù)處理方法,強(qiáng)制子類必須實(shí)現(xiàn)。以上為學(xué)習(xí)一天的總結(jié),有錯(cuò)誤歡迎指正。相同的是這個(gè)方法處理的都是中的一個(gè)元素。 在閱讀本文前,可先看一下官方的WordCount代碼, 對(duì)Apache Beam有大概的了解。 要說(shuō)在Apache Beam中常見(jiàn)的函數(shù)是哪一個(gè),當(dāng)然是apply()。常見(jiàn)的寫(xiě)法如下: [Final Outp...
摘要:批處理的程序分析博客從到學(xué)習(xí)介紹從到學(xué)習(xí)上搭建環(huán)境并構(gòu)建運(yùn)行簡(jiǎn)單程序入門從到學(xué)習(xí)配置文件詳解從到學(xué)習(xí)介紹從到學(xué)習(xí)如何自定義從到學(xué)習(xí)介紹從到學(xué)習(xí)如何自定義從到學(xué)習(xí)轉(zhuǎn)換從到學(xué)習(xí)介紹中的從到學(xué)習(xí)中的幾種詳解從到學(xué)習(xí)讀取數(shù)據(jù)寫(xiě)入到從到學(xué)習(xí)項(xiàng) 批處理的 WordCount 程序分析: https://t.zsxq.com/YJ2Zrfi 博客 1、Flink 從0到1學(xué)習(xí) —— Apache ...
摘要:自己寫(xiě)一個(gè)程序來(lái)自動(dòng)生成測(cè)試數(shù)據(jù),因?yàn)槊總€(gè)個(gè)人作業(yè)的要求不一樣,自動(dòng)化框架無(wú)法對(duì)每種程序都生成測(cè)試數(shù)據(jù),目前只支持生成按規(guī)則生成隨機(jī)的字符串測(cè)試集。 作者:Grey...
閱讀 2628·2021-09-28 09:36
閱讀 2246·2021-09-07 09:58
閱讀 1504·2019-08-26 13:53
閱讀 1286·2019-08-23 17:53
閱讀 3035·2019-08-23 15:34
閱讀 1858·2019-08-23 15:34
閱讀 2875·2019-08-23 12:04
閱讀 3727·2019-08-23 10:56