hadoop操作只写一行?

时间:2014-03-02 02:13:23

标签: sql hadoop hive

我正在尝试处理tweets-clean.txt。通过处理,我的意思是获取每个用户ID的早期日期,最新日期和记录数,以及每行中的用户ID本身。我只得到一行,只有该行中的最小和最大日期。我做错了什么?

CREATE TABLE temptweets16 (
    date        string,
    userid      string
) ;

LOAD DATA LOCAL INPATH 'tweets-clean.txt' INTO TABLE temptweets16;

INSERT OVERWRITE LOCAL DIRECTORY './hive-output'
SELECT 
    userid as userid,
    MIN(FROM_UNIXTIME(UNIX_TIMESTAMP( date, 'EEE MMM dd HH:mm:ss Z yyyy' ))) as mindate,
    MAX(FROM_UNIXTIME(UNIX_TIMESTAMP( date, 'EEE MMM dd HH:mm:ss Z yyyy' ))) as maxdate,
    COUNT (userid) as count
FROM temptweets16
GROUP BY userid;

输入示例:

Tue Feb 11 05:04:10 +0000 2014  1046894028

仅输出线:

\N2014-02-11 00:02:102014-02-11 00:04:100

1 个答案:

答案 0 :(得分:1)

您需要在CREATE TABLE语句中指定数据的格式,如果它是制表符分隔文件,您可以说:

CREATE TABLE temptweets16 (
    date        string,
    userid      string
) 
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t';