hbase java timestamp_如何从hbase列读取日期,时间和时间戳

我使用Phoenix在Hbase中创建下表。如何从hbase列读取日期,时间和时间戳

CREATE TABLE test_Table

(test_date date not null,

CONSTRAINT PK_test PRIMARY KEY (test_date)

);

然后使用以下命令将一条记录插入到相同的记录中。

upsert into test_Table(test_date) values('2013-11-30');

我能够从Hbase使用读取字符串,整型,浮点数和双数据类型值。 Hbase客户端API,但不是日期类型。

我正在使用以下代码来阅读所有,但不知道如何从字节中读取日期。

import org.apache.spark._

import org.apache.spark.rdd._

import org.apache.spark.sql.SQLContext

import org.apache.spark.sql.DataFrame

import org.apache.hadoop.conf.Configuration

import org.apache.hadoop.fs.Path

import org.apache.hadoop.hbase.HBaseConfiguration

import org.apache.hadoop.hbase.spark.HBaseContext

import org.apache.hadoop.hbase.client.Scan

import org.apache.hadoop.hbase.util.Bytes

import org.apache.spark.sql.types._

import org.apache.hadoop.hbase.filter.PrefixFilter

import org.apache.hadoop.hbase.{ TableName, HBaseConfiguration }

import java.io.File

import java.text.SimpleDateFormat

def scanHBaseTable(tableName: String, sqlContext: SQLContext): Unit = {

@transient val conf = getHbaseConfiguration();

@transient var scan = new Scan()

//scan.setAllowPartialResults(Constants.ALLOW_HBASE_PARTIAL_SCAN)

//scan.setCaching(Constants.HBASE_SCAN_CACHE)

val hbaseContext = new HBaseContext(sqlContext.sparkContext, conf);

val hbaseRawRDD = hbaseContext.hbaseRDD(TableName.valueOf(tableName), scan)

hbaseRawRDD.foreach(v =>

{

println(Bytes.toString(v._1.get()))

println((new SimpleDateFormat("yyyy-MM-dd").parse(Bytes.toString(v._1.get()))))

})

println("Length: " + hbaseRawRDD.map(r => r._1.copyBytes()).collect().length);

}

有人可以给我提供了相同的解决方案?

2017-05-10

Ankush


版权声明:本文为weixin_33960567原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。