I am trying to load a text file that uses ascii(254) as a delimiter
Column #1 is time
Column #2 is ID

Contents of this file (test_data.txt):
11-25-2008-14:37:44þ546460819054541434
11-25-2008-15:05:34þ546460554662946399
11-25-2008-15:06:21þ556460862552067034
11-25-2008-15:17:51þ576460863857903582
11-25-2008-14:37:44þ546460819054541434
11-25-2008-15:05:34þ546460554662946399
11-25-2008-15:06:21þ556460862552067034
11-25-2008-15:17:51þ576460863857903582
11-25-2008-14:37:44þ546460819054541434
11-25-2008-15:05:34þ546460554662946399
11-25-2008-15:06:21þ556460862552067034
11-25-2008-15:17:51þ576460863857903582
11-25-2008-14:37:44þ546460819054541434
11-25-2008-15:05:34þ546460554662946399
11-25-2008-15:06:21þ556460862552067034
11-25-2008-15:17:51þ576460863857903582

I create a table in hive with the following syntax:

hive> CREATE TABLE test(time STRING, ID string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '254' STORED AS TEXTFILE;
OK
Time taken: 8.891 seconds

After this, I load the file

hive> LOAD DATA INPATH 'hdfs://localhost:54310/test_data.txt' OVERWRITE INTO TABLE test;
Loading data to table test
OK
Time taken: 0.623 seconds

To make sure that data is loaded correctly, I select only the first column (time)

hive> select time from test;
Total MapReduce jobs = 1
Starting Job = job_200901141536_0006, Tracking URL = 
http://localhost:50030/jobdetails.jsp?jobid=job_200901141536_0006
Kill Command = /home/hadoop/hadoop/bin/../bin/hadoop job - Dmapred.job.tracker=localhost:54311 -kill job_200901141536_0006
map = 0%,  reduce =0%
map = 50%,  reduce =0%
map = 100%,  reduce =0%
Ended Job = job_200901141536_0006
OK
11-25-2008-14:37:44�546460819054541434
11-25-2008-15:05:34�546460554662946399
11-25-2008-15:06:21�556460862552067034
11-25-2008-15:17:51�576460863857903582
11-25-2008-14:37:44�546460819054541434
11-25-2008-15:05:34�546460554662946399
11-25-2008-15:06:21�556460862552067034
11-25-2008-15:17:51�576460863857903582
11-25-2008-14:37:44�546460819054541434
11-25-2008-15:05:34�546460554662946399
11-25-2008-15:06:21�556460862552067034
11-25-2008-15:17:51�576460863857903582
11-25-2008-14:37:44�546460819054541434
11-25-2008-15:05:34�546460554662946399
11-25-2008-15:06:21�556460862552067034
11-25-2008-15:17:51�576460863857903582
Time taken: 12.25 seconds

It is obvious it did not parse the columns correctly.

To narrow the problem down, I created a version of this file where the delimiter is a tab

Contents of this file (test_data_tab.txt):
11-25-2008-15:05:34     546460554662946399
11-25-2008-15:06:21     556460862552067034
11-25-2008-15:17:51     576460863857903582
11-25-2008-14:37:44     546460819054541434
11-25-2008-15:05:34     546460554662946399
11-25-2008-15:06:21     556460862552067034
11-25-2008-15:17:51     576460863857903582
11-25-2008-14:37:44     546460819054541434
11-25-2008-15:05:34     546460554662946399
11-25-2008-15:06:21     556460862552067034
11-25-2008-15:17:51     576460863857903582
11-25-2008-14:37:44     546460819054541434
11-25-2008-15:05:34     546460554662946399
11-25-2008-15:06:21     556460862552067034
11-25-2008-15:17:51     576460863857903582

I use a nearly identical syntax to create new table. The only change is the new field delimiter '9' (tab)

hive> CREATE TABLE test(time STRING, ID string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '9' STORED AS TEXTFILE;
OK
Time taken: 0.105 seconds

Next I load the file

hive> LOAD DATA INPATH 'hdfs://localhost:54310/test_data_tab.txt' OVERWRITE INTO TABLE test;
Loading data to table test
OK
Time taken: 0.179 seconds

Check to see if the data has been loaded using the same query..

hive> select time from test;
Total MapReduce jobs = 1
Starting Job = job_200901141536_0007, Tracking URL = 
http://localhost:50030/jobdetails.jsp?jobid=job_200901141536_0007
Kill Command = /home/hadoop/hadoop/bin/../bin/hadoop job - Dmapred.job.tracker=localhost:54311 -kill job_200901141536_0007
map = 0%,  reduce =0%
map = 50%,  reduce =0%
map = 100%,  reduce =0%
Ended Job = job_200901141536_0007
OK
11-25-2008-15:05:34
11-25-2008-15:06:21
11-25-2008-15:17:51
11-25-2008-14:37:44
11-25-2008-15:05:34
11-25-2008-15:06:21
11-25-2008-15:17:51
11-25-2008-15:05:34
11-25-2008-15:06:21
11-25-2008-15:17:51
11-25-2008-14:37:44
11-25-2008-15:05:34
11-25-2008-15:06:21
11-25-2008-15:17:51
11-25-2008-14:37:44
Time taken: 10.553 seconds

Success. The import with ascii(9) worked, but ascii(254) failed. Is there anyway to load this original data file with ascii(254) delimiter?


Reply via email to