2014-10-30 31 views

回答

5

要获得期望的结果,你可以使用下面的命令按照以下提到的方法
Store的关系

STORE <Relation> INTO '<file_path>' USING PigStorage('\u0001'); 

揭露蜂巢表指的是生成的文件

hive>CREATE EXTERNAL TABLE TEMP(
c1 INT, 
c2 INT, 
c3 INT, 
c4 INT 
..... 
) 
ROW FORMAT 
DELIMITED FIELDS TERMINATED BY '\001' 
LINES TERMINATED BY '\n' 
STORED AS TEXTFILE 
LOCATION '<file_path>'; 

如果输出文件目前在linux本地目录下创建表

hive>CREATE TABLE TEMP(
c1 INT, 
c2 INT, 
c3 INT, 
c4 INT 
..... 
) 
ROW FORMAT 
DELIMITED FIELDS TERMINATED BY '\001' 
LINES TERMINATED BY '\n' 
STORED AS TEXTFILE; 

和数据加载到表

hive> load data local inpath '<file_path>' into table temp; 
1

你能试试吗?

STORE <OutpuRelation> INTO '<Outputfile>' USING PigStorage('\u0001'); 

Example: 
input.txt 
1,2,3,4 
5,6,7,8 
9,10,11,12 

PigScript: 
A = LOAD 'input.txt' USING PigStorage(','); 
STORE A INTO 'out' USING PigStorage('\u0001'); 

Output: 
1^A2^A3^A4 
5^A6^A7^A8 
9^A10^A11^A12 

UPDATE:
以上猪的脚本输出存储到文件名“部分-M-00000”,我想这个文件加载到蜂巢。一切工作正常,我没有看到任何问题。

hive> create table test_hive(f1 INT,f2 INT,f3 INT,f4 INT); 
OK 
Time taken: 0.154 seconds 

hive> load data local inpath 'part-m-00000' overwrite into table test_hive; 
OK 
Time taken: 0.216 seconds 

hive> select *from test_hive; 
OK 
1 2 3 4 
5 6 7 8 
9 10 11 12 
Time taken: 0.076 seconds 
hive> 
+0

我刚刚测试过这种方法,它没有工作......任何其他建议?谢谢 – adebesin 2014-10-30 11:46:43

+0

Geem7n可以提供一些更详细的信息,为什么没有工作对我来说看起来很标准。 – shainnif 2014-10-30 13:27:46

+0

对我来说,它的工作很好,我可以将数据加载到配置单元中。你是否将猪输出文件复制到新文件中并加载到配置单元(或)中,将猪脚本生成的相同输出文件加载到配置单元中? – 2014-10-30 13:33:56