------------恢復內容開始------------
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進行整體排序即可