我有一个56列的表,想加载46列的数据,我该怎么做?

lskq00tm  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(239)

我有一个包含56列的表(主表),我想从包含46列的不同表中加载数据。我尝试将46列数据导出到csv中,并尝试将数据加载到主表中。虽然加载了,但数据不匹配。有人能帮我一下吗。empid包含emp name的数据。
将数据本地inpath'/home/data/download/sample.csv'加载到表slave\u table select*from slave\u table中

unhi4e5o

unhi4e5o1#

你可以这样做:
1.创建一个包含csv中46列的表:

CREATE EXTERNAL TABLE TABLENAME                                                 
(COLS)                                               
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'                                                       
WITH SERDEPROPERTIES ("separatorChar"=",", "quoteChar" = '~', "escapeChar" = "Δ", "skip.header.line.count"="1")    
STORED AS TEXTFILE

请根据需要修改serdeProperty!
2.从新创建的表中插入56列表,插入方式如下:

Insert into TABLE_WITH_56_COLS (name the 46 cols that you want to populate)
select 46 cols from TABLE_WITH_46_COLS;

希望这对你有帮助!

相关问题