我以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';
它执行得非常好,但当我这样做
select * from tweets;
我什么也没有得到,所以我想知道我是否可以在调试模式下运行配置单元,看看它在哪里失败
3条答案
按热度按时间yr9zkbsy1#
设置
hive --hiveconf hive.root.logger=DEBUG,console
由于公司特定的设置,可能无法始终工作。我最终创造了一个
hive-log4j.properties
“我的主目录”中具有以下设置的文件:并开始使用
CLASSPATH=$HOME hive
它添加了您的主目录hive-log4j.properties
在类路径前面,因此被拾取。ltqd579y2#
可以调试配置单元代码。此链接可以帮助您:https://cwiki.apache.org/confluence/display/hive/developerguide#developerguide-调试HiveCode
7gyucuyw3#
您最好通过如下方式将logger模式切换到debug来启动hiveshell,我希望您能从中找到一些有用的东西。