------------恢复内容开始------------
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进行整体排序即可