我有一个包含56列的表(主表),我想从另一个包含46列的表中将数据加载到该表中。我尝试将46列数据导出到CSV并尝试将数据加载到主表中。虽然已加载,但数据不匹配。任何人都可以在这方面帮助我...
Empid包含emp名称的数据。

将数据本地inpath'/home/data/download/sample.csv'加载到表slave_table中
从slave_table中选择*

最佳答案

您可以这样:

1.创建一个表来保存来自csv的46个cols:

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

请根据需要修改serdeproperties!

2.使用以下插入内容将这个新创建的表插入到56 cols表中:
Insert into TABLE_WITH_56_COLS (name the 46 cols that you want to populate)
select 46 cols from TABLE_WITH_46_COLS;

希望这对您有所帮助!

关于apache-spark - 我有56列的表格,想加载46列的数据,我该怎么办?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57163297/

10-13 04:32