我有一个包含56列的表(主表),我想从包含46列的不同表中加载数据。我尝试将46列数据导出到csv中,并尝试将数据加载到主表中。虽然加载了,但数据不匹配。有人能帮我一下吗。empid包含emp name的数据。将数据本地inpath'/home/data/download/sample.csv'加载到表slave\u table select*from slave\u table中
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;
希望这对你有帮助!
1条答案
按热度按时间unhi4e5o1#
你可以这样做:
1.创建一个包含csv中46列的表:
请根据需要修改serdeProperty!
2.从新创建的表中插入56列表,插入方式如下:
希望这对你有帮助!