我使用以下代码编写了一个火花单词计数程序:
package com.practice
import org.apache.spark.SparkConf
import org.apache.spark.sql.SparkSession
object WordCount {
val sparkConf = new SparkConf()
def main(args: Array[String]): Unit = {
val spark = SparkSession.builder().config(sparkConf).master("local[2]").getOrCreate()
val input = args(0)
val output = args(1)
val text = spark.sparkContext.textFile(input)
val outPath = text.flatMap(line => line.split(" "))
val words = outPath.map(w => (w,1))
val wc = words.reduceByKey((x,y)=>(x+y))
wc.saveAsTextFile(output)
}
}
使用spark提交,我运行jar并在输出目录中获得输出:
SPARK_MAJOR_VERSION=2 spark-submit --master local[2] --class com.practice.WordCount sparkwordcount_2.11-0.1.jar file:///home/hmusr/ReconTest/inputdir/sample file:///home/hmusr/ReconTest/inputdir/output
输入和输出文件均位于本地而不是HFDS上。
在输出目录中,我看到两个文件:part-00000.deflate _SUCCESS
。
输出文件以.deflate扩展名存在。我了解检查互联网后,输出已保存在压缩文件中,但是有什么办法可以读取该文件?
答案 0 :(得分:1)
尝试这个。
cat part-00000.deflate | perl -MCompress :: Zlib -e'undef $ /;打印uncompress(<>)'