一. 解决方案
1.首先查看source表的表结构及数据,可大概判断出哪些字段的值中可能包含分隔符。使用 字段名 like '%分割符%’,能准确判断出此字段是否包含分隔符,如果包含可选择其它分隔符试试,如果能挑选和数据不冲突的分隔符,那么sqoop就可以选定此分隔符。
2.这次遇到的表,什么分隔符以及转义字符(\b,\r,\n,\t,\r)都包含,所以采用替换字段中的分隔符的方式进行处理,同时hive这边的行分割符是\n,所以需要使用如下参数进行处理--hive-drop-import-delims
具体的sqoop语句如下:
sqoop import \
--hive-import \
--connect 地址 \
--username 账号 \
--password 密码 \
--query "select order_id, order_create_time, trans_time, 'status', trade_type, pay_type, prod_category, prod_sub_category, prod_name, pay_to_phone, pay_to_phone_prov, pay_currency_type, trans_amount, rep_code, pay_cust_acct_id, pay_cust_user_id, pay_cust_name, pay_cust_id_card_no, pay_cust_card_no, pay_cust_card_prov, pay_cust_card_type, col_cust_acct_id, col_cust_user_id, col_cust_name, col_cust_id_card_no, col_cust_card_no, col_cust_card_prov, shop_to_name, shop_to_mobile, shop_to_province, shop_to_city, shop_to_area, shop_to_street, last_update_time, shop_to_addr, trans_ip, ip_prov,

当源表数据中存在与默认或自定义分隔符冲突的情况,可以尝试以下方法:1. 检查并替换字段内含有的分隔符;2. 使用`--hive-drop-import-delims`参数处理行和列分隔符。示例的Sqoop命令展示了如何执行这些操作,包括使用REPLACE函数替换字段内的分隔符,并指定Hive导入时删除导入分隔符。
最低0.47元/天 解锁文章
1743

被折叠的 条评论
为什么被折叠?



