I'm actually having a similar problem with using sequence files.
I create a table like so:
CREATE TABLE txns (
tid STRING,
txn STRING
)
PARTITIONED BY(dt DATETIME)
STORED AS SEQUENCEFILE;
And then I point to one our existing transaction log files, which are
gzipped compressed sequence files where the 'tid' is the key and 'txn'
is the value:
ALTER TABLE txns ADD PARTITION (dt="2009_04_01") LOCATION '/user/br/
2009_04_01';
Then I go to inspect the table like:
SELECT txn from txns limit 3;
and it's just NULL's. So then I try to see what is in tid:
SELECT tid from txns limit 3;
And it's the txn field!
So it seems that Hive is ignoring the 'key' in sequence files....Is
there anyway to make that not happen?
On a related note, I noticed that when I dropped the table (DROP TABLE
txns;), the files were not deleted. Why is that? Is it because I added
them via "ALTER TABLE/ADD PARITITION"? If so, can I rely on this
behavior in the future? I like being able to drop a table and not
worry about all my files disappearing!
Thanks
Bobby
On Sep 18, 2009, at 3:16 PM, Avram Aelony wrote:
Check your field delimiter?
-A
From: Abhijit Pol [mailto:[email protected]]
Sent: Friday, September 18, 2009 2:55 PM
To: [email protected]
Subject: getting all null values
For one of the hive table I switched from TextFile to SequenceFile
format. This is how I created the new table:
CREATE EXTERNAL TABLE IMPRESSIONS ( A STRING, B STRING)
PARTITIONED BY(DATA_DATE STRING COMMENT 'yyyyMMdd (e.g. 20090801) on
which log records are collected')
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
STORED AS SEQUENCEFILE
LOCATION '/user/hadoop/warehouse/facts/impressions/';
This external table is sourced by our custom ETL job which writes
data in MultipleSequenceFileOutputFormat.
When I issue simple query like: SELECT * FROM IMPRESSIONS;
This is what I am getting for all the records:
NULL NULL 20090715
NULL NULL 20090715
NULL NULL 20090715
....
But if I do: hadoop dfs -text /user/hadoop/warehouse/facts/
impressions/data_date=20090715/* | less
I get expected output.
Previously I was using MultipleTextFileOutputFormat to feed TextFile
version of this table and it worked well.
Any hints?
Thanks,
Abhi