【问题标题】:I have table of 56 columns and want to load 46 columns of data how can I do it?我有 56 列的表,想加载 46 列的数据,我该怎么做?
【发布时间】:2019-07-23 21:14:23
【问题描述】:
我有一个包含 56 列的表(主表),我想从包含 46 列的不同表中加载数据。我尝试将 46 列数据导出到 CSV 并尝试将数据加载到主表中。它已加载但数据不匹配。任何人都可以帮我解决这个问题...例如
Empid 包含 emp 名称的数据。
将数据本地路径'/home/data/download/sample.csv'加载到表slave_table中
从slave_table中选择*
【问题讨论】:
标签:
apache-spark
hadoop
hive
hiveql
【解决方案1】:
你可以这样做:
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
请根据需要修改 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;
希望这对您有所帮助!