Caused by: java.lang.NumberFormatException: For input string: “|“

在这里插入图片描述
这个异常是在使用spark进行数据清洗处理的时候出现的异常,在百度上搜索,发现类似的异常都是出现在jsp页面的参数设置中,困扰了好半天。

1|24|M|technician|85711
2|53|F|other|94043
3|23|M|writer|32067
4|24|M|technician|43537
5|33|F|other|15213
6|42|M|executive|98101
7|57|M|administrator|91344
8|36|M|administrator|05201
9|29|M|student|01002
10|53|M|lawyer|90703

这是原本的数据格式,以“|”作为分隔符,所以一般的思路也是把”|”作为分隔依据

 //读取数据HDFS上
    val userRdd = sc.sparkContext.textFile("file:///C:/Users/Administrator/Desktop/ml-100k/u.user")
      .map(line=>(line.split("|"))) //需要进行转义
      .map(t=>User(t(0).toInt,t(1).toInt,t(2),t(3),t(4).toInt))
    //4.导入相关的隐士依赖
    import  sc.implicits._
    val UserDF = userRdd.toDF()
    UserDF.select($"id",$"age",$"sex",$"occuption",$"number")
        .show()

这是代码块,这是在这里忽略了切割字符需要进行转义,不然确实会出现格式异常,在对“|”做了转义处理后,正确得到了结果

正确的代码块

 //读取数据HDFS上
    val userRdd = sc.sparkContext.textFile("file:///C:/Users/Administrator/Desktop/ml-100k/u.user")
      .map(line=>(line.split("\\|"))) //需要进行转义
      .map(t=>User(t(0).toInt,t(1).toInt,t(2),t(3),t(4).toInt))
    //4.导入相关的隐士依赖
    import  sc.implicits._
    val UserDF = userRdd.toDF()
    UserDF.select($"id",$"age",$"sex",$"occuption",$"number")
        .show()

    sc.stop()

运行结果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值