我从cloudera网站上拿了一个例子来编写一个用于解析文件的自定义SerDe
http://blog.cloudera.com/blog/2012/12/how-to-use-a-serde-in-apache-hive/
这似乎是一个很好的例子,但当我用自定义serde创建表
ADD JAR <path-to-hive-serdes-jar>;
CREATE EXTERNAL TABLE tweets (
id BIGINT,
created_at STRING,
source STRING,
favorited BOOLEAN,
retweeted_status STRUCT<
text:STRING,
user:STRUCT<screen_name:STRING,name:STRING>,
retweet_count:INT>,
entities STRUCT<
urls:ARRAY<STRUCT<expanded_url:STRING>>,
user_mentions:ARRAY<STRUCT<screen_name:STRING,name:STRING>>,
hashtags:ARRAY<STRUCT<text:STRING>>>,
text STRING,
user STRUCT<
screen_name:STRING,
name:STRING,
friends_count:INT,
followers_count:INT,
statuses_count:INT,
verified:BOOLEAN,
utc_offset:INT,
time_zone:STRING>,
in_reply_to_screen_name STRING
)
PARTITIONED BY (datehour INT)
ROW FORMAT SERDE 'com.cloudera.hive.serde.JSONSerDe'
LOCATION '/user/flume/tweets';
Run Code Online (Sandbox Code Playgroud)
它完美地执行但是当我这样做
select * from tweets;
Run Code Online (Sandbox Code Playgroud)
我什么都没得到这就是为什么我想知道我是否可以在调试模式下运行配置单元以查看它失败的原因
嘿家伙我正在使用hive jdbc,但之后我才知道有hive metastore java api(这里)你可以通过它再次连接到hive和操作hive数据库
但我想知道这两种方式之间究竟有什么区别
很抱歉,如果被问到任何明显的信息,我们将非常感谢您提
我正在开发 hbase java 客户端,我能够从 hbase 数据存储中获取元数据,例如所有表名、列族和列,但我无法获取在 google 上搜索的 hbase 列的数据类型并发现无法获取数据类型
在hbase java客户端的帮助下HTableDescriptor,HColumnDescriptor
另一个问题是我以这种方式获取元数据,我认为这不是这样的方式,如果有人可以优化此代码将真正帮助我
public List<ColumnFamily> getMetaDataOfTable(String tableName) {
HTable table = null;
try {
HTableDescriptor tableDescriptor = admin.getTableDescriptor(Bytes
.toBytes(tableName));
HColumnDescriptor[] columnDescriptor = tableDescriptor
.getColumnFamilies();
for (HColumnDescriptor temp : columnDescriptor) {
ColumnFamily columnFamily = new ColumnFamily();
columnFamily.setName(temp.getNameAsString());
columnFamilies.add(columnFamily);
}
table = new HTable(conf, tableName);
Scan scan = new Scan();
for (ColumnFamily columnFamily : columnFamilies) {
scan.addFamily(Bytes.toBytes(columnFamily.getName()));
ResultScanner scanner = table.getScanner(scan);
for (Result result = scanner.next(); result != null; …Run Code Online (Sandbox Code Playgroud)