hiveserde返回json tweets flume错误

bnl4lu3b  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(371)

我正在使用flume收集twitter流数据,并将其以json格式存储在hdfs中。我试图使用hiveserde将这些twitter数据放入hive表中,但是我得到了一个非常令人沮丧的错误。

hive> ADD JAR file:////home/ubuntu/hive/lib/hive-serdes-1.0-SNAPSHOT.jar;
Added [file:////home/ubuntu/hive/lib/hive-serdes-1.0-SNAPSHOT.jar] to class path
Added resources: [file:////home/ubuntu/hive/lib/hive-serdes-1.0-SNAPSHOT.jar]
hive>  CREATE EXTERNAL TABLE tweet (
    >    id BIGINT,
    >    created_at STRING,
    >    source STRING,
    >    favorited BOOLEAN,
    >    text STRING,
    >    in_reply_to_screen_name STRING
    >  ) 
    > 
    >  ROW FORMAT SERDE 'com.cloudera.hive.serde.JSONSerDe'
    >  LOCATION '/user/ubuntu/twitter/';
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. org/apache/hadoop/hive/serde2/SerDe

任何帮助都将不胜感激。

k5ifujac

k5ifujac1#

我也有同样的问题,但是我找到了解决问题的方法:
create table tweets(tweet string); load data inpath 'home/hduser/test.json' into table tweets; 唯一不同的是现在你需要使用, get_json_object() 使用数据。
如下所示:

select get_json_object(tweet,'$.text') as tweet_text, get_json_object(tweet,'$.created_at') as created_at  from tweets;

参考

相关问题