gpt4 book ai didi

hadoop - 自定义比较器中的 Hbase 传递值

转载 作者:行者123 更新时间:2023-12-02 20:56:09 31 4
gpt4 key购买 nike

我第一次尝试编写自定义比较器。其中我需要将两个值传递给这个比较器。一个是需要比较的值,一个是我需要编写比较逻辑的标准。以下是相同的代码:

public class IdComparator  extends WritableByteArrayComparable {

private String criteria;

static final Log LOG = LogFactory.getLog(IdComparator.class);

public IdComparator(){
//NoOp
}

public IdComparator(byte[] value,byte[] criteria){
super(value);
this.criteria = new String(criteria);
}

public String getCriteria(){
return this.criteria;
}

@Override
public int compareTo(byte[] value, int offset, int length) {
String csv_CBC = new String(value, offset, length);
LOG.info("IdComparator :: csv :: "+csv);
byte[] bytesToCompare = this.getValue();
LOG.info("IdComparator :: csv :: "+new String(bytesToCompare) + " criteria :: "+getCriteria());
//filtering logic goes here
return result;
}

}

现在当我调用这个比较器过滤器并将一些值传递为
new SingleColumnFilter(....,
new IdComparator(Bytes.toBytes("1234"),Bytes.toBytes("1")));

在记录器中,我将值作为测试,但第二个值 1 没有被打印并且打印为空。以下是我在日志中得到的内容:
IdComparator    :: csv :: 56783,44445,56664,97633
IdComparator :: csv :: 1234 criteria :: null

第一个值 1234 将传递给 WritableByteArrayComparable 和另一个“1”的父类(super class),我将用于比较逻辑,仅针对此类进行设置。有什么我遗漏或需要补充的吗?任何帮助都将受到高度评价。

最佳答案

找到了解决方案,我不得不实现 读取字段 来自可写接口(interface)的方法来完成它。

关于hadoop - 自定义比较器中的 Hbase 传递值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44459739/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com