sqoop导入hive数据时对换行等特殊字符处理

Sqoop1.4.4将MySQL中数据导入到Hive表中 问题导读:          1、--hive-import、--hive-overwrite的作用?          2、如何处理关系型数据库字段中字符串含有分隔符问题?          3、使用--hive-import默认字段分隔符是?一行记录分隔符是?          4、NULL值是怎么处理的?--null-string和--null-string的作用? 阅读详情

使用场景:

 公司大数据平台ETL操作中,在使用sqoop将mysql中的数据抽取到hive中时,由于mysql库中默写字段中会有换行符,导致数据存入hive后,条数增多(每个换行符会多出带有null值得一条数据),导致统计数据不准确。

 

解决办法:

利用一下两个参数可以实现对换行等特殊字符的替换或者删除

  • --hive-delims-replacement
  • --hive-drop-import-delims

参考官方文档

Table 8. Hive arguments:

ArgumentDescription
--hive-home <dir>Override $HIVE_HOME
--hive-importImport tables into Hive (Uses Hive’s default delimiters if none are set.)
--hive-overwriteOverwrite existing data in the Hive table.
--create-hive-tableIf set, then the job will fail if the target hive
 table exits. By default this property is false.
--hive-table <table-name>Sets the table name to use when importing to Hive.
--hive-drop-import-delimsDrops \n, \r, and \01 from string fields when importing to Hive.
--hive-delims-replacementReplace \n, \r, and \01 from string fields with user defined string when importing to Hive.
--hive-partition-keyName of a hive field to partition are sharded on
--hive-partition-value <v>String-value that serves as partition key for this imported into hive in this job.
--map-column-hive <map>Override default mapping from SQL type to Hive type for configured columns.

 

使用方法,

1、在原有sqoop语句中添加 --hive-delims-replacement “ ” 可以将如mysql中取到的\n, \r, and \01等特殊字符替换为自定义的字符,此处用了空格

2、在原有sqoop语句中添加 --hive-drop-import-delims 可以将如mysql中取到的\n, \r, and \01等特殊字符丢弃

 

Sqoop学习笔记 --- 过滤空值以及特殊格式 阅读详情

相关推荐

3D识别建模 — 基于ReconstructMe和EAGLE EYES SCANNER的实现

3D实体识别建模,作为3D打印反向工程的一个重要环节,今天就让我们利用ReconstructMe和EAGLE EYES SCANNER来了解一下。 第一步、软件和硬件准备就绪 ReconstructMe下载并安装 http://reconstructme.net/?wpdmdl=160 EAGLE EYES SCANNER直接将相应USB插入电脑接口即OK,之后在    中点击搜索“设备管理...

qq_40013290的博客 881

hive表分隔符修改实操(兼容sqoop)

版本描述: hive1.1.0-cdh5.16.2 sqoop 1.4.7 结论: 通过如下语句修改分隔符,(网上很多文章只修改了一处,无法识别sqoop过来的数据) #修改分隔符为逗号 , ALTER TABLE table_name SET SERDEPROPERTIES ('field.delim'=',' , 'serialization.format'=',');...

zbz1006572352的博客 1万+

告别混乱代码!在Arduino IDE中管理多文件项目的5个必备技巧

本文分享了在Arduino IDE中管理多文件项目的5个必备技巧,帮助开发者告别混乱代码。通过代码分割和模块化设计,提升编译效率、降低内存占用,并实现功能解耦。重点介绍了头文件设计、CPP文件实现、调试技巧和工业级目录结构,让你的Arduino项目像乐高积木一样清晰易维护。

fun88的博客 361

[大数据 Sqoop,hive,HDFS数据操作]

《古风二首 / 悯农二首》 唐·李绅 春种一粒粟,秋收万颗子。四海无闲田,农夫犹饿死。锄禾日当午,汗滴禾下土。谁知盘中餐,粒粒皆辛苦。

汤圆的博客 1387

Laser-Marking 激光振镜打标机的开源代码 - 下载 - 搜珍网

为了方便开发者的使用和定制化需求,我们在这里提供激光振镜打标机的开源代码,并附带详细的描述。首先,让我们来了解一下激光振镜打标机的基本原理。振镜系统由两个可移动的反射镜组成,可以控制激光束在水平和垂直方向上的偏转角度,从而实现对工件的精确控制。通过这段开源代码,开发者可以根据自己的需求对激光振镜打标机进行二次开发和定制化。你可以修改振镜角度、打标速度等参数,也可以添加其他功能,例如自动识别和追踪等。首先,我们创建了一个串口对象,用于与激光振镜打标机进行通信。函数实现了对用户输入文本的打标操作。

TechProX的博客 1278

基于STM32L4XX、HAL库的MCP4561数字电位器驱动程序设计

/ HAL库需要左移一位。* @param address: 设备地址(0x2C-0x2F)* @param hmcp: MCP4561句柄。* @param hmcp: MCP4561句柄。* @param hmcp: MCP4561句柄。* @param hmcp: MCP4561句柄。* @param hmcp: MCP4561句柄。* @param hmcp: MCP4561句柄。* @param hmcp: MCP4561句柄。* @param hi2c: I2C句柄。

zhusl6688的博客 340

sqoop参数详解(全量、增量导入导出)

从RDBMS到HIVE: --connect jdbc:oracle:thin:@//192.168.156.111/test --username test --password test --query select * from it.t_test where inserttime >= to_date('${date1}','yyyy-mm-dd') and inserttime...

清平乐的技术专栏 5151

关于YOLOv8的面试题(持续更新中...)

本章将计划更新关于YOLOv8中可能会成为面试题的关键技术点,计划持续更新,可能想到合适的问题我就会整理下更新到本博客中。

ice 4166

Sqoop将数据从oracle导入到hive时,数据错位的问题解决

问题一:导入的列有换行符等其他字符如何解决 在使用sqoop将数据从oracle导入hive时,对数据进行验证,发现hive中的数据比oracle的多,然后发现多出来的数据严重错位,大量字段为null 怀疑是某些字段含有了hive默认的分隔符,如“\n”,“\r”,“\01” 解决办法是增加参数--hive-drop-import-delims来解决 Hive will have prob...

SunWuKong_Hadoop的博客 2090

【经验&技巧】如何在ADS中导入示波器的时域波形?

从示波器中导出的时域波形数据,需要按照固定的格式进行修改,并通过Display dataset对话框导入ADS。

一只豌豆象的博客 1572

springboot+vue项目基础开发(12)vue项目的搭建

在src目录下新建 api,utils,views文件夹。删除componets目录下自动生成的所有文件。在utils文件夹下创建request.js。启动项目,记得是要在管理员下启动。

m0_58498702的博客 153

通过工具sqoop导入hive数据时对换行等特殊字符处理

使用场景: 公司大数据平台ETL操作中,在使用sqoop将mysql中的数据抽取到hive中时,由于mysql库中默写字段中会有换行符,导致数据存入hive后,条数增多(每个换行符会多出带有null值得一条数据),导致统计数据不准确。 解决办法: 利用一下两个参数可以实现对换行等特殊字符的替换或者删除 --hive-delims-replacement --hive-drop-import-del...

weixin_43390992的博客 1135

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

用sqoop从mysql、oracle导入数据到hive时,遇到换行符导致数据翻倍的问题

场景 由于mysql库中有的字段会有换行符,导致数据存入hive后,条数增多(每个换行符会多出带有null值得一条数据),导致统计数据不准确。 解决方法 利用一下两个参数可以实现对换行等特殊字符的替换或者删除 --hive-delims-replacement替换 --hive-drop-import-delims删除 sqoop官网解释 - -hive-drop-import-del...

yyf960126的博客 2009

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Sqoop导入HDFS格式问题

(1)使用Text格式 sqoop import --connect jdbc:oracle:thin:@//IP:1521/ASMP2 --username --password --query "SELECT * FROM SBPOPT.TT_MAINTENANCE_TIMES_CORRECT where \$CONDITIONS" --fields-terminated-by '\t' --delete-target-dir --target-dir /user/asmp/hive/asmp/tt_m

lhxsir的博客 761

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Sqoop

sqoop

weixin_45140946的博客 190

sqoop 处理换行符 \n 和\r 等特殊符号处理

公司大数据平台ETL操作中,在使用sqoop将mysql中的数据抽取到hive中时,由于mysql库中默写字段中会有换行符,导致数据存入hive后,条数增多(每个换行符会多出带有null值得一条数据),导致统计数据不准确。因为sqoop 导出文件不能是ORC这种列式存储,所以只能替换。导出后对替换的字符在进行替换,将数据表存储orc 解决办法: 利用一下两个参数可以实现对换行等特殊字...

wuzhilon88的专栏 5517

hive-drop-import-delims选项对oracle的clob无效

工作过程中发现了用sqoop将oracle中的数据导入到hive时,会因为oracle中类型为clob的字段中存在换行时,会造成hive的数据错位。即使加上了 --hive-drop-import-delims 也无效。 通过查询,发现有两种解决方案, 一种是将oracle中类型为clob的字段通过cast(column_name as varchar2(4000)) 将类型进行显式...

weixin_30756499的博客 2424

sqoop 测试 --hive-delims-replacement 参数

在hive的官方文档中给的例子中字段分隔符是\001,但是在他的API文档中--hive-delims-replacement ,--hive-drop-import-delims 参数中会处理的字符是\0x01,一个时8进制的1,一个是16进制的1,有这么一点差别,lz为了确认这两个是否一样故做了下面的实验 Example: CREAT...

afei2530的博客 1259

sqoop命令参数参考说明及案例示例

sqoop命名示例及实战案例示例

chimchim66的博客 2390

解决Sqoop CLOB 字段从Oracle导入Hive错行

CLOB字段从Oracle导入到Hive时,如果CLOB中有换行符 Sqoop import参数选项 --hive-drop-import-delims对CLOB中换行符是没有效果的 需要显示添加--map-column-java CLOB列名=String 这样--hive-drop-import-delims 才能去除CLOB中的换行符。 参考文章 https://stackover...

简单的心的博客 3130

使用sqoop进行数据迁移遇到回车符、换行符问题

当使用sqoop进行数据迁移遇到换行符的问题可能会导致sqoop任务执行完迁移的数据条数与在hive中查询SQL得到的数据条数可能不一致,造成这个错误的原因大概率是换行符或者回车符的问题。在执行sqoop命令时加上如下命令即可成功实现中英文换行符、回车符等特殊符号的处理问题,本质就是将数据源的数据单元格里面的大的文本或者具有特殊符号的数据认定为string。--hive-drop-import-delim 删除特殊字符及换行符。-- 查询替换某个既含有换行符又含有回车符的字段。-- 此处替换为空格。

weixin_67805929的博客 1377

Sqoop一些常用详细命令及参数

常用命令列举 这里给大家列出来了一部分Sqoop操作时的常用参数,以供参考,需要深入学习的可以参看对应类的源代码。 命令 类 说明 import ImportTool 将数据导入到集群 export ExportTool 将集群数据导出 codegen CodeGenTool 获取数据库中某张表数据生成Java并打包Jar create-hive-table Creat...

@小刘同学nice 2313

Sqoop从MySQL导数据至hive数据表异常(数据量不对,数据值不对)

通过数据比对,发现sqoop导入hive的数据与MySQL原始数据对应不上,表现为两点: ①查数据总数不对,MySQL的count(1) = 108120条数据,但是导入至hive发现只有108112条数据,数据发生了丢失。 ②应查数据值不对,查询到某个字段,MySQL值中仅有1,2两种值,但是hive表中包含1,2,以及一串看不懂的数字。 经反复核对数据,发现问题症结,所以就将它记录下来了。 ...

argue10的博客 4199
上一篇: python操作mysql数据库
下一篇: sql小技巧积累
grootblockchain
博客等级 码龄11年 55粉丝 101原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值