spark模型error java.lang.IllegalArgumentException: Row length is 0


failure: Lost task 18.3 in stage 17.0 (TID 59784,XXXXX, executor 19): java.lang.IllegalArgumentException: Row length is 0

场景是写入hbase:

val put = new Put(Bytes.toBytes(line._1))

当取出的line._1做为row,值是“”或者null时就会出现此异常。所以做如下处理,先过滤掉为null和“”的数据

    val bhaseRdd = resultRdd.filter(r => {
      r._1 != "" && r._1!=null&&r._1.length>0
    }).map(line => {
      val put = new Put(Bytes.toBytes(line._1)) //rowKey 为参数,拿到put
      val key = line._2.keySet().iterator(); //拿到对应的dataMap
........

 然后count下数据量:

println(bhaseRdd.count())

发现为0,那就是你的resultRdd里没有收集到数据,或者收集了好多数据但是里面全是null或者“”,然后解决这个问题就可以了

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM