--一般通过hive -e导出文本时,我都习惯把比较容易出错的String类型字段做一次regexp_replace()处理,因为如果字段里面含有制表符,那是一件很坑很坑的事

hive -e "select regexp_replace(String_Col1,'\t',''),Date_Col2,Integer_Col3 ... from hivedb.export_table" | sed 's/\t/\x01/g;s/\\/\\\\/g;s/\x00//g'  >.../export_table.txt

--GP中新建外部表,根据之前把\t替换掉的分隔符x01来分隔,屡试不爽,成功率99.99%

drop external table if exists product_ext.export_table_ext;
create external table product_ext.export_table_ext(
String_Col1 varchar(1000),
Date_Col2 date,
Integer_Col3 integer,
...
)
LOCATION (
'gpfdist://xxx.xxx.xxx.xxx:port/.../export_table.txt'
)FORMAT 'TEXT' (DELIMITER E'\x01'); --irview_vt

--即使sed 's/\t/\x01/g;s/\\/\\\\/g;s/\x00//g'处理过,分隔符按照\x01处理,今天还是遇到了0.01%的失败,下面是解决方法:

--根据错误信息,定位到含有出错字符串的行,备份到一个临时文件,实际上也就发现了一行有错误,没办法,只能查找删除它

more rid_mac_201735to38w.txt | grep 'jQTIJWkiyytg97PCjh5U' > rid_mac_falsedata.txt

--把包含错误(也就是通过外部表映射到内部表出错)信息的行删除掉

sed -i '/jQTIJWkiyytg97PCjh5U/d' rid_mac_201735to38w.txt

--此时,就能正常插入了  

Query returned successfully: 302060132 rows affected, 26.6 secs execution time.

附.

sed命令_Linux sed 命令用法详解

  

  

转载于:https://www.cnblogs.com/binguo2008/p/7682783.html

GP通过外部表装载数据时遇到ERROR:extra data after last expected column解决方法相关推荐

  1. archlinux启动时出现 error file /boot/vmlinuz-linus not found的解决方法

    archlinux启动时出现 error file /boot/vmlinuz-linus not found的解决方法 一.系统问题描述 二.解决过程 一.系统问题描述 系统:win11+archl ...

  2. mysql字段中有问号_Mysql数据库,表中有中文时,select出来好多问号(?)的解决方法...

    首先,我用的是zip包的Mysql,直接解压使用的,网上说修改my.ini或者my.cnf在我机器上根本就找不到.但是my.ini这个东西是可以自己添加的.将mysql目录中的my-default.i ...

  3. 爬虫爬取数据时,网页响应码返回404问题的解决方法

    爬虫报404问题: 在进行爬虫爬取数据的过程中,使用语句: r = requests.get(url, timeout=60, headers=headers, stream=True) # prin ...

  4. php 两次post,ajax跨域往php程序post数据时,php程序总是执行两次的解决办法

    ajax跨域往php程序post数据时,php程序总是执行两次的解决方法 php程序是部署在IIS7上面,ajax提交数据时,遇到了两个问题,一个就是跨域,一个php程序总会被执行两次. 第一个问题的 ...

  5. oracle 外部表装载,Oracle 原理:数据装载 ,SQLldr ,外部表

    一.导入 SQLldr SQL*LOADER可以把txt文件,Excel文件导入到数据库中.使用SQLloader导入导出需要一个数据文件和一个控制文件.数据文件中存了你需要导入的数据,控制文件中写你 ...

  6. php删除一张表数据的时候 把另一张表的数据也删除,剔除第一张表的数据时,修改第二张表的相关字段的数值...

    删除第一张表的数据时,修改第二张表的相关字段的数值 表xf xf_id vip total 1 1 10 2 1 100 3 2 80 4 3 50 表vip vip jifen 1 1000 2 5 ...

  7. mysql中用于删除数据的是什么意思_在删除关系表中数据时,要先删除主表数据再删除从表数据。_学小易找答案...

    [单选题]在MySQL中,所有存储过程的信息存放在下列哪个数据库中 [填空题]拉伸试验能测定的塑性指标有: 和 . [单选题]下面查看视图的基本信息的语句中,正确的是 [单选题]下面关于视图建立的说法 ...

  8. sqoop导出数据时:ERROR tool.ExportTool: Error during export: Export job failed!解决

    sqoop导出数据时:ERROR tool.ExportTool: Error during export: Export job failed!解决 这里的错误就是经典的hive和mysql的表结构 ...

  9. 关于sqoop抽取数据时显示ERROR :/QueryResult.java‘ already exists 解读

    关于sqoop抽取数据时显示ERROR :/QueryResult.java' already exists 解读 报错日志 ERROR orm.CompilationManager: Could n ...

最新文章

  1. 思科:全球近75%的物联网项目失败
  2. 一个简洁OKR是成功的关键因素
  3. 刷新table数据_经典 - 一文轻松看懂数据透视表
  4. C#中关于处理两个大数相乘的问题
  5. 为Ubuntu设置新的软件源
  6. blog被封了文章全被删除了,郁闷
  7. gRPC-Web发布,REST又要被干掉了?
  8. 查看回调函数执行在那个线程中的方法
  9. 【JDK和Open JDK】平常使用的JDK和Open JDK有什么区别(转)
  10. Debian9.5安装VNC并且配置vnc开机自启动
  11. Excel使用频率较高的数据处理和分析-----数据透视表
  12. 前端布局 flex布局
  13. 光学方面的SCI收录期刊
  14. 小程序loding动画组件封装及源码
  15. 【附源码】计算机毕业设计java兴发农家乐服务管理系统设计与实现
  16. 【Visual C++】游戏开发笔记四十三 浅墨DirectX教程十一 为三维世界添彩:纹理映射技术(二)...
  17. 一张图看懂梯度、散度、旋度、Jacobian、Hessian和Laplacian
  18. mysql中my.cnf不生效解决
  19. CSS-- 精灵图和字体图标
  20. Paper Reading:U-Net

热门文章

  1. Android 个人学习笔记- 导入android项目,无法自动生成R文件的解决方法
  2. 单例模式 - 深究剖析
  3. 【按住你的心】——Android开发运行属于自己的Hello,World!
  4. 【poe设备加电配置】
  5. 关于yarn的一些心得
  6. ###修改图片为圆形
  7. 苹果内购和 Apple Pay
  8. C#开机启动与退出程序
  9. 【好书试读】支付宝体验设计精髓
  10. 祭旗篇---关于提高技术团队技术氛围的一些尝试