zoukankan      html  css  js  c++  java
  • spark bulkload 报错异常:Caused by: java.io.IOException: Added a key not lexically larger than previous

    ------------恢复内容开始------------

    Caused by: java.io.IOException: Added a key not lexically larger than previous. Current cell = 2c90807b73996dff0173b758788600a5,104/CF:dimension_type/1603964542276/Put/vlen=8/seqid=0, lastCell = 2c90807b73996dff0173b758788600a5,104/CF:id_list/1603964542276/Put/vlen=36/seqid=0
    at org.apache.hadoop.hbase.io.hfile.HFileWriterImpl.checkKey(HFileWriterImpl.java:245)

     1.主要原因:

    spark写hfile时候是按照rowkey+列族+列名进行排序的,因此在写入数据的时候,要做到整体有序

    ,如果某个rowkey相同的两列,前一个列名为id_lis,下一个列名为dimension_type,发现按照字典顺序d是i之前的,但是插入是i是后面来的,所以没有顺序

    解决方法:

    读取hive表时,使用shcme信息获取列名与对应的值作为map集合,对map的 key也就是列名进行排序,解决列名顺序问题

    在结合rowkey进行整体排序即可

  • 相关阅读:
    java 运算
    java String
    java的数据类型
    Python: str() 和 repr() 的区别
    Linux命令:which
    Linux命令:locate
    Linux命令:ifconfig
    Linux命令:whereis
    Linux命令:rz 和 sz
    Linux命令:scp
  • 原文地址:https://www.cnblogs.com/hejunhong/p/13898121.html
Copyright © 2011-2022 走看看