主要策略:
一 ,读取hbase表数据
二 ,获取rowkey字段,和过滤条件用的字段
三 ,根据过滤条件,只保留需要删除的数据的rowkey
四 ,分批次删除hbase 数据(我这里每个批次10000条)
具体代码如下:
package ezr.bigdata.spark.hbase
import java.util.{ArrayList, List}
import org.apache.hadoop.hbase.client._
import org.apache.hadoop.hbase.protobuf.ProtobufUtil
import org.apache.hadoop.hbase.util.{Base64, Bytes}
import org.apache.hadoop.hbase.{CellUtil, HBaseConfiguration, TableName}
import org.apache.spark.{SparkConf, SparkContext}
import scala.collection.JavaConversions._
/**根据品牌删除hbase数据
* 参数 必须大于等于2个
* 第一个参数:hbase 表名炒年糕
* 第二个参数开始:品牌的brandId(可以是多个品牌id空格隔开)
* 例如:
* ① pro:crm_vip_info_grade_log1 333 319
* ② pro:crm_vip_info_grade_log1 333
*
* Created by liucf on 09/20/2019.
*/
object DeleteDataByBrand {
def convertScanToStrin