gpt4 book ai didi

java - 如何使用 HbaseTemplate "findAllBy{Column}"?

转载 作者:可可西里 更新时间:2023-11-01 15:20:30 24 4
gpt4 key购买 nike

我一直在使用 Spring 和 HBase 等技术开发我的第一个 RESTful 服务器。

下面的

Message是我服务器的核心模型;

@AllArgsConstructor
@Getter
public class Message {

private final String from;

private final String to;

private final long when;

}

我的服务器应该将消息保存并查找到 HBase 中。

我已经进行了研究并阅读了这份文档:https://docs.spring.io/spring-hadoop/docs/2.5.0.RELEASE/reference/html/springandhadoop-hbase.html#data-access-object-dao-support

然而,这还不够。本教程未说明如何按特定列查找。

您能否提供一个代码片段,根据以下查询从 HBase 检索消息?

SELECT from, to, when FROM Message WHERE to = {userId} OR from = {userId}

最佳答案

下面给出了一个基于列的查询的例子:

Scan scan = new Scan();
scan.addColumn(HbaseJsonEventSerializer.COLUMFAMILY_FILTERS_BYTES,
Bytes.toBytes(columnName));
Filter filter = new SingleColumnValueFilter(HbaseJsonEventSerializer.COLUMFAMILY_FILTERS_BYTES,
Bytes.toBytes(columnName), CompareOp.EQUAL, Bytes.toBytes(columnValue));
scan.setFilter(filter);

List<String> rows =
hbaseTemplate.find("searchclicks", scan, new RowMapper<String>() {
@Override
public String mapRow(Result result, int rowNum) throws Exception {
byte[] value = result.getValue(
HbaseJsonEventSerializer.COLUMFAMILY_FILTERS_BYTES,
Bytes.toBytes(columnName));
if (value != null) {
String facetValue = new String(value);
LOG.debug("Facet field: {} and Facet Value: {}",
new Object[] { columnName, facetValue });
}
return facetValue;
}
});

更多例子你可以引用这个:
https://www.programcreek.com/java-api-examples/?code=jaibeermalik/searchanalytics-bigdata/searchanalytics-bigdata-master/src/main/java/org/jai/hbase/HbaseServiceImpl.java

关于java - 如何使用 HbaseTemplate "findAllBy{Column}"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54282215/

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