设为首页 加入收藏

TOP

删除Hbase指定列数据
2019-04-08 01:47:08 】 浏览:169
Tags:删除 Hbase 指定 数据
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jin6872115/article/details/86098271

Hbase没有删除某列数据的直接命令,通过指定表名,列簇,列名

package com.cslc.asiancup.dfstohbase;

import com.cslc.asiancup.utils.HbaseUtil;
import com.cslc.asiancup.utils.HbaseUtilJava;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.*;
import scala.Option;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;

/**
 * @Author :LPJ
 * @Date 2019/1/4 12:31
 */
public class DROP_Cloumn {

    public static void main(String[] args) throws IOException {


        final Configuration conf = HbaseUtilJava.conf;
        Connection connection = ConnectionFactory.createConnection(conf);
        Table table = connection.getTable(TableName.valueOf("UNNORMAL_STATUS"));
        final Scan scan = new Scan();
        scan.addColumn("CF1".getBytes(),"LOTTERY_AMOUNT".getBytes());
        final Iterator<Result> iterator = table.getScanner(scan).iterator();
        for( int i =0; i < 50 ; i ++){
            final ArrayList<Delete> deletes = new ArrayList<Delete>();
            while (iterator.hasNext() && deletes.size() <= 100000) {
                final Result v = iterator.next();
                final Delete delete = new Delete(v.getRow());
                if (v.containsColumn("CF1".getBytes(), "LOTTERY_AMOUNT".getBytes())) {
                    delete.deleteColumns("CF1".getBytes(), "LOTTERY_AMOUNT".getBytes());
                    deletes.add(delete);
                }
            }
            table.delete(deletes);
        }
        table.close();
        connection.close();


    }

}

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Hbase   MapReduce例子 下一篇大数据Spark优化读取Hbase--regio..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目