我正在使用以下步骤将数据从SQLServer迁移到配置单元,但结果表存在数据问题。我尝试了各种选项,包括检查数据类型,使用 csvSerde
但无法在各个列中正确对齐数据。我遵循以下步骤:
将sql server数据导出到带有逗号分隔字段的平面文件。
在配置单元中创建如下所示的外部表并加载数据。
CREATE EXTERNAL TABLE IF NOT EXISTS myschema.mytable (
r_date timestamp
, v_nbr varchar(12)
, d_account int
, d_amount decimal(19,4)
, a_account varchar(14)
)
row format delimited
fields terminated by ','
stored as textfile;
LOAD DATA INPATH 'gs://mybucket/myschema.db/mytable/mytable.txt' OVERWRITE INTO TABLE myschema.mytable;
我可以尝试的所有组合的数据都有问题。我也尝试过opencsvserde,但结果比简单的文本文件更糟。我也尝试过将分隔符改为分号,但没有成功。
row format serde 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
with serdeproperties ( "separatorChar" = ",") stored as textfile
location 'gs://mybucket/myschema.db/mytable/';
你能不能建议一些稳健的方法,这样我就不必处理数据问题了。注意:目前我没有选择将sqlserver表与sqoop连接起来。
暂无答案!
目前还没有任何答案,快来回答吧!