hadoop - Hbase Upsert 与 Spark

标签 hadoop apache-spark hbase

我有 spark streaming 工作,在这个过程中有些人正在做一些聚合,现在我想将该记录插入到 HBase 但它不是典型的插入我想做 UPSERT 如果 rowkey 可用而不是列值 sum(newvalue+oldvalue ) 应该发生。 有人在 java 中共享伪代码吗?我该如何实现?

最佳答案

像这样的……

byte[] rowKey = null; // Provided
Table table = null; // Provided
long newValue = 1000; // Provided
byte[] FAMILY = new byte[]{0}; // Defined
byte[] QUALIFIER = new byte[]{1}; // Defined

try {
    Get get = new Get(rowKey);
    Result result = table.get(get);
    if (!result.isEmpty()) {
        Cell cell = result.getColumnLatestCell(FAMILY, QUALIFIER);
        newValue += Bytes.bytesToLong(cell.getValueArray(),cell.getValueOffset());
    }
    Put put = new Put(rowKey);
    put.addColumn(FAMILY,QUALIFIER,Bytes.toBytes(newValue));
    table.put(put);
} catch (Exception e) {
    // Handle Exceptions...
}

我们(Splice Machine[开源])有一些非常棒的教程,使用 Spark Streaming 在 HBase 中存储数据。

检查 it出去。可能很有趣。

关于hadoop - Hbase Upsert 与 Spark,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38849976/

相关文章:

hadoop - 说 “hadoop is a hyper-converged Infrastructure application”是否公平?

hadoop - Haddop MRUnit MapDriver.addInput()给出NotSerializableException:java.nio.HeapByteBuffer错误

hadoop - 如果工作节点上未安装 Spark(在 YARN 上),Spark 执行器如何启动?

apache-spark - Spark Streaming 应用程序的核心用法

apache-spark - oozie 工作流触发特定队列上的启 Action 业

java - HBase MapReduce中的Nullpointer异常

hbase - 使用 HBase 进行行分页

java - 如何在线练习Hadoop?

apache-spark - Spark数据框计算行最小值

scala - HBase Spark - 与 Spark 2.0 的连接