一、使用wholeTextFiles使用\n作为分隔符时问题:
wordcount.txt(文件中没有多余空格&\n):
hadoop
hbase
spark
执行的spark程序:
val word=sc.wholeTextFiles("E:\\new 1.txt")
word.flatMap(_._2.split("\n")) .map(x=>(x,1)).foreach(println(_))
输出为:
,1)
,1)
(spark,1)
解决方法:突然想到回车为\r\n,因此使用\r\n作为分隔符即可。
二、spark程序去除源文件第一行字段名称:
val header=files.first()
val file=files.filter(x=>x!=header)
val splitFile = file.map(x => x.split(" ")).filter(arr => arr.length == 3)
三、scala的异常处理
处理异常需要使用case模式匹配
try{
println("daydayup")
}catch{
case ex: FileAlreadyExistsException => println(路径已存在")
case ex: Throwable => println("未知错误" + ex)
}
四、spark程序运行中hdfs设置文件夹覆盖
sparkConf().set("spark.hadoop.validateOutputSpecs", "false")
五、使用“|”作为分隔符 需要转义“\|”