我正在尝试使用hadoop分析twitter数据。我已经根据之前的tweet创建了一个hive表。现在我再次下载了twitter数据,问题是在tweet中出现了以前tweet数据中没有的新列。我的问题是,有没有办法找到tweet的最大列数,以便为它创建一个配置单元表。无奈至今好心帮忙谢谢
vohkndzv1#
我不知道要得到tweet包含的所有专栏我认为您应该使用像avro这样在内部存储元数据的存储格式,并相应地更新模式,这样您就可以支持动态模式
jaxagkaj2#
如果您有json格式的tweet,那么使用下面的查询在hive中生成表
CREATE EXTERNAL TABLE tweets ( 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 'com.cloudera.hive.serde.JSONSerDe' LOCATION '/user/hive/warehouse/tweets';
下载jar表单http://files.cloudera.com/samples/hive-serdes-1.0-snapshot.jar 并添加
ADD JAR /home/kishore/hive-0.9.0/lib/hive-serdes-1.0-SNAPSHOT.jar;
2条答案
按热度按时间vohkndzv1#
我不知道要得到tweet包含的所有专栏
我认为您应该使用像avro这样在内部存储元数据的存储格式,并相应地更新模式,这样您就可以支持动态模式
jaxagkaj2#
如果您有json格式的tweet,那么使用下面的查询在hive中生成表
下载jar表单http://files.cloudera.com/samples/hive-serdes-1.0-snapshot.jar 并添加