我正在处理twitter数据以hive外部表,但在创建hive外部表时我收到错误。请查看下面的代码。
使用以下命令添加到jar文件配置单元中 我在hive lib目录中添加了流动的jar:
ADD JAR /usr/local/hive/lib/hive-serdes-1.0-SNAPSHOT.jar;
请找到外部蜂巢表:
CREATE EXTERNAL TABLE Mytweets_raw (
id BIGINT,
created_at STRING,
source STRING,
favorited BOOLEAN,
retweet_count INT,
retweeted_status STRUCT<text:STRING,tuser:STRUCT<screen_name:STRING,name:STRING>>,
entities STRUCT<urls:ARRAY<STRUCT<expanded_url:STRING>>,
user_mentions:ARRAY<STRUCT<screen_name:STRING,name:STRING>>,
hashtags:ARRAY<STRUCT<text:STRING>>>,
text STRING,
tuser 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 )
ROW FORMAT SERDE 'com.cloudera.hive.serde.JSONSerDe'
LOCATION 'hdfs://localhost:54310/data/tweets_raw';
在此之后我收到以下错误消息,请任何机构可以提供帮助吗?
更多信息:我目前的环境是
答案 0 :(得分:1)
这对我有用, 我只需要将serde格式从'com.cloudera.hive.serde.JSONSerDe'替换为'org.openx.data.jsonserde.JsonSerDe',错误就可以解决了。祝你好运!
CREATE EXTERNAL TABLE tweets4 (
id BIGINT,
created_at STRING,
source STRING,
favorited BOOLEAN,
retweet_count INT,
retweeted_status STRUCT<
text:STRING,
`user`:STRUCT<screen_name:STRING,name:STRING>>,
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
)
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
LOCATION '/twitter-project/project1';
答案 1 :(得分:0)
错误代码1表示权限问题。确定问题非常困难(主要是环境问题)。我们收到此错误的原因可能有很多。请尝试以下情况,看看是否收到同样的错误。
1)检查您是否有权创建表(Hive路径)。
2)创建简单的Hive外部表(您可以确认您有元存储的访问权限)
3)通过指向HDFS位置创建简单外部Hive表(您可以确认您对HDFS路径的访问权限)
4)通过指向本地路径创建Simple External Hive表(您可以确认本地路径的访问权限)
5)检查您对jar位置有777权限。
我建议尝试除上述情况之外可能存在许可问题的多个案例。