oracle用一定分隔符导出数据,sqoop从oracle抽取数据到hive时候分隔符有关问题

oracle表字段默认使用,间隔,因此导出的时候,sqoop写法如下 注意分隔符为,:

sqoop import \

--connect $ORCL_CONNECTOR \

--username $ORCL_USERNAME \

--password $ORCL_PASSWORD \

--table $TABLENAME \

--target-dir $HDFSPATH \

--m $MAP \

--columns $COLUMNS \

--fields-terminated-by ',' \

--jar-file ../../lib/sqoop-import.jar \

--class-name com.chinadaas.gsinfo.sqoop.oracle.$TABLENAME

导出到hdfs后,通过hive创建外表关联hdfs的写法如下:

drop table if exists F_LIUCHENG_TMP_HDFS_EXT_20150717;

create external table F_LIUCHENG_TMP_HDFS_EXT_20150717 (

MARKCODE string, MARKCODE_KEY string, UNIONTYPECODE string, XIANGMU string, LIUCHENGDATE string, CREATEDATE string, ISDELITEM string, REMARK string, HASDOWN string, FLIUC_IDT string, FLIUC_UDT string, FLIUC_STATUS string, FLIUC_ID string, FLIUC_SID string

)

ROW FORMAT DELIMITED FIELDS TERMINATED BY ','

LOCATION '/tmp/oracle_20150717/F_LIUCHENG_TMP';

这样,sqoop导出的字段就和hive的字段关联起来,数值也会一一对应,否则,对应的数据会都放在hive的第一个字段里并且以,间隔,hive的其余字段都为Null。

这是工作总遇到的问题的总结。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值