spark编程笔记wholeTextFiles使用\n作为分隔符

一、使用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")

五、使用“|”作为分隔符 需要转义“\|”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值