date - 使用 HBase 获取最近 N 天的所有行

标签 date hadoop timestamp hbase

我正在尝试编写一个组件,从过去 5 天(5 是任意的)从 HBase 获取行。我想使用的时间戳是 HBase 给行的默认时间戳(除非由于某种原因有问题)

我知道我可以使用 scan and with timestamp范围,但我不太确定如何在 HBase 中获取当前日期(我目前正在 HBase shell 中对其进行测试,但最终我需要一个代码来执行此操作)。我试过这样的事情:

scan 'urls', {COLUMNS => 'urls', TIMERANGE => [SimpleDateFormat.new("yy/MM/dd HH:mm:ss").parse("2016/03/02 00:00:00", ParsePosition.new(0)).getTime(), new Date().getTime()]}

但是 shell 说我有一个意外的语法错误 tCONSTANT。我确实成功导入了 Date、SimpleDateFormat 和 ParsePosition

我也看了other examples但找不到我需要的东西

我也想知道是否有更优雅的方式来完成这个任务?

提前致谢

最佳答案

在 HBase shell 中,您可以使用 TIMERANGE 过滤器。来自 scan --help 命令的示例:

hbase> scan 't1', {COLUMNS => 'c1', TIMERANGE => [1303668804, 1303668904]}

对于java客户端,可以在扫描对象上设置timeRange:

Scan s = new Scan();
s.setTimeRange(1303668804L, 1303668904L);

关于date - 使用 HBase 获取最近 N 天的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35848337/

相关文章:

scala - 将 Scala 对象写入 Parquet 的最佳方法是什么?

java - Java代码检查事件时间戳记是否在工作日和工作时间从9:30 AM到4:00 PM

c++ - 为什么代码中会发生溢出(-2147483648)?

javascript - 使用 Date() 转换具有指定时区偏移量的时间戳;

php - 如何在mysql日期类型字段中插入一个空值?

hadoop - 如何知道一个新数据被添加到 HDFS?

hadoop - Hadoop 中 Reducer 的错误输入值

c++ - 如何在 C++ 中从 protobuf 时间戳重建日期

sql - 在 SQL Server 中删除日期时间的时间部分的最佳方法

Android 上的 Java 日期格式转换