2014-03-03 38 views
2

好吧,我有一些關於加載MySQL數據到蜂巢2的問題,並不知道如何指定分隔符,我嘗試了僕役時間,但什麼都沒有。這裏下面配置單元加載數據:如何指定文件列分隔符和動態分區列?

是蜂巢表,id是分區列,

0: jdbc:hive2://localhost/> desc test; 
+-----------+------------+----------+ 
| col_name | data_type | comment | 
+-----------+------------+----------+ 
| a   | string  |   | 
| id  | int  |   | 
+-----------+------------+----------+ 

當我執行

load data local inpath 'file:///root/test' into table test partition (id=1); 

它說:

Invalid path ''file:///root/test'': No files matching path file 

,但它做存在。

我想動態通過指定的文件分割,所以我添加了非常列到文件中是這樣的:

[email protected]<namenode|~>:#cat /root/test 
a,1 
b,2 

但它也失敗了,文件說一無所知,我猜它不」現在支持。 劑量有人有一些想法嗎?任何幫助將不勝感激!

+0

你確定該文件在HDFS中嗎? – shazin

回答

2

如果您要指定使用該命令的列語句,

ROW FORMAT DELIMITED 
FIELDS TERMINATED BY ',' 

更換「」與你分離

此外,如果你要分區指定要終止使用列蜂房表;

CREATE TABLE Foo (bar int) 
PARTITIONED BY (testpartition string) 
ROW FORMAT DELIMITED 
FIELDS TERMINATED BY ',' 
+0

謝謝! but..donesn't'local'表示本地文件系統,請參閱[LanguageManual + DML](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DML).BTW,我的意思是如何加載數據在動態分區模式下(SET hive.exec.dynamic.partition.mode = nonstrict) – cwalet

+0

@cwalet對不起,我的錯誤,但如果你從本地linux路徑加載到ORC壓縮表不會工作。不是說你這樣做只是爲了理順我的錯誤!將數據本地inpath'file:/// root/test/*'加載到表test分區(id = 1);嘗試使用這個命令而不是原來的命令,看看它是否有效。 – BasicHorizon

相關問題