對于上述所有的make的細節(jié),我們不但可以利用make這個工具來編譯我們的程序,還可以利用make來完成其它的工作,因為規(guī)則中的命令可以是任何shell之下的命令,所以,在unix下,你不一定只是使用程序語言的編譯器,你還可以在makefile中書寫其它的命令linux命令,如:tar、awk、mail、sed、cvs、compress、ls、rm、yacc、rpm、ftp……等等,等等,來完成諸如"程序打包"、"程序備份"、"制作程序安裝包"、"提交代碼"、"使用程序模板"、"合并文件"等等五花八門的功能,文件操作,文件管理,編程開發(fā)設計,或是其它一些異想天開的東西。對于上述所有的make的細節(jié),我們不但可以利用make這個工具來編譯我們的程序,還可以利用make來完成其它的工作,因為規(guī)則中的命令可以是任何shell之下的命令,所以,在unix下,你不一定只是使用程序語言的編譯器,你還可以在makefile中書寫其它的命令,如:tar、awk、mail、sed、cvs、compress、ls、rm、yacc、rpm、%20ftp……等等,等等,來完成諸如"程序打包"、"程序備份"、"制作程序安裝包"、"提交代碼"、"使用程序模板"、"合并文件"等等五花八門的功能,文件操作,文件管理,編程開發(fā)設計,或是其它一些異想天開的東西。網(wǎng)友下載過程常可見解壓包中存在著這些光盤鏡像文件,光盤鏡像格式的文件是原版拷貝文件,或拷貝后進行一些打包處理.制作光盤鏡像格式的軟件有許多.以下只對怎么使用光盤鏡像文件做個說明.也就是模擬過程.(打開光盤鏡像格式的文件,常用的alcohol%20120%linux命令,東方光驅魔術師,等等軟件,可直接模擬之),以下簡單的介紹一下alcohol%20120%的使用方法:。
%201%20package%20big.data.analyse.linux %202%20 %203%20import%20org.apache.log4j.{Level,%20Logger} %204%20import%20org.apache.spark.sql.SparkSession %205%20 %206%20import%20scala.sys.process._ %207%20/** %208%20%20%20*%20Created%20by%20zhen%20on%202019/10/10. %209%20%20%20*/ 10%20object%20SparkUseLinux%20{ 11%20%20%20/** 12%20%20%20%20%20*%20設置日志級別 13%20%20%20%20%20*/ 14%20%20%20Logger.getLogger("org").setLevel(Level.WARN) 15%20%20%20def%20main(args:%20Array[String])%20{ 16%20%20%20%20%20/** 17%20%20%20%20%20%20%20*%20調用linux命令解壓zip包 18%20%20%20%20%20%20%20*/ 19%20%20%20%20%20println("===開始解壓包數(shù)據(jù)===") 20%20%20%20%20%20val%20path%20=%20"D:\\testData.zip" 21%20%20%20%20%20val%20ml%20=%20"unzip%20"%20+%20path%20+%20"%20-d%20D:\\" 22%20%20%20%20%20s"$ml".! 23%20%20%20%20%20/** 24%20%20%20%20%20%20%20*%20創(chuàng)建入口 25%20%20%20%20%20%20%20*/ 26%20%20%20%20%20val%20fileUrl%20=%20"D:\\testData.txt" 27%20%20%20%20%20val%20spark%20=%20SparkSession.builder().appName("SparkUseLinux").master("local[2]").getOrCreate() 28%20%20%20%20%20/** 29%20%20%20%20%20%20%20*%20加載解壓后的數(shù)據(jù),計算wordcount 30%20%20%20%20%20%20%20*/ 31%20%20%20%20%20val%20rdd%20=%20spark.sparkContext.textFile(fileUrl) 32%20%20%20%20%20%20%20.map(row%20=>%20row.replace("(",%20"%20").replace(")",%20"%20").replace(".",%20"%20").replace("\"",%20"%20").replace(":",%20"%20"))//去除文字中的,防止出現(xiàn)歧義 33%20%20%20%20%20%20%20.flatMap(row%20=>%20row.split("%20"))//把字符串轉換為字符集合 34%20%20%20%20%20%20%20.map(row%20=>%20(row,%201))//把每個字符串轉換為map,便于計數(shù) 35%20%20%20%20%20%20%20.reduceByKey(_+_)//計數(shù) 36%20%20%20%20%20%20%20.filter(row%20=>%20!row._1.isEmpty) 37%20%20%20%20%20%20%20.filter(row%20=>%20row._2%20>%201) 38%20 39%20%20%20%20%20println("---結果---") 40%20%20%20%20%20rdd.foreach(println) 41%20%20%20%20%20/** 42%20%20%20%20%20%20%20*%20關閉入口 43%20%20%20%20%20%20%20*/ 44%20%20%20%20%20spark.stop() 45%20%20%20} 46%20}
執(zhí)行前:
執(zhí)行后:
結果:
posted @ 2019-10-10 17:15云山之巔 閱讀(...) 評論(...) 編輯