Hive多字节分隔符解决方案
26页1、 Hive多字节分隔符解决方案 目录1 应用场景1.1 Hive中的分隔符1.2 特殊数据2 问题与需求2.1问题2.2 情况二:数据中包含了分隔符3 解决方案3.1 解决方案一:替换分隔符3.2 解决方案二:RegexSerDe正则加载3.3 解决方案三:自定义InputFormat4 总结1 应用场景1.1 Hive中的分隔符Hive中默认使用单字节分隔符来加载文本数据,例如逗号、制表符、空格等等,默认的分隔符为001。根据不同文件的不同分隔符,我们可以通过在创建表时使用 row format delimited fields terminated by 单字节分隔符 来指定文件中的分割符,确保正确将表中的每一列与文件中的每一列实现一一对应的关系。1.2 特殊数据在实际工作中,我们遇到的数据往往不是非常规范化的数据,例如我们会遇到以下的两种情况 情况一:每一行数据的分隔符是多字节分隔符,例如:”|”、“-”等上图中每列的分隔符为|,为多字节分隔符 情况二:数据的字段中包含了分隔符上图中每列的分隔符为空格,但是数据中包含了分割符,时间字段中也有空格192.168.88.134 08/
2、Nov/2020:10:44:32 +0800 GET / HTTP/1.1 404 9512 问题与需求2.1问题基于上述的两种特殊数据,我们如果使用正常的加载数据的方式将数据加载到表中,就会出以下两种错误: 情况一:加载数据的分隔符为多字节分隔符创建表-如果表已存在就删除表 drop table if exists singer; -创建表 create table singer( id string,-歌手id name string,-歌手名称 country string,-国家 province string,-省份 gender string,-性别 works string-作品 ) -指定列的分隔符为| row format delimited fields terminated by |;加载数据load data local inpath /export/data/test01.txt into table singer;查看结果select * from singer;问题数据发生了错位,没有正确的加载每一列的数据原因Hive中默认只支持单字节分隔符,无法识别多
3、字节分隔符2.2 情况二:数据中包含了分隔符创建表-如果表存在,就删除表 drop table if exists apachelog; -创建表 create table apachelog( ip string, -IP地址 stime string, -时间 mothed string, -请求方式 url string, -请求地址 policy string, -请求协议 stat string, -请求状态 body string -字节大小 ) -指定列的分隔符为空格 row format delimited fields terminated by ;加载数据load data local inpath /export/data/apache_web_access.log into table apachelog查看结果select * from apachelog;问题时间字段被切分成了两个字段,后面所有的字段出现了错位原因时间数据中包含了分隔符,导致Hive认为这是两个字段,但实际业务需求中,为一个字段需求基于上面两种情况的测试发现,当数据中出现了多字节分隔符或者数
4、据中的某个字段包含了分隔符,就会导致数据加载错位的问题。基于出现的问题,我们需要通过特殊的方法来解决该问题,即使当数据中出现多字节分隔符等情况时,Hive也能正确的加载数据,实现列与数据的一一对应。3 解决方案3.1 解决方案一:替换分隔符方案概述面对情况一,如果数据中的分隔符是多字节分隔符,可以使用程序提前将数据中的多字节分隔符替换为单字节分隔符,然后使用Hive加载,就可以实现正确加载对应的数据。例如:原始数据中的分隔符为“|”程序开发可以在ETL阶段通过一个MapReduce程序,将“|”替换为单字节的分隔符“|”,示例程序如下:import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.conf.Configured; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.NullWritable; import org.apache.hadoop
《Hive多字节分隔符解决方案》由会员ji****81分享,可在线阅读,更多相关《Hive多字节分隔符解决方案》请在金锄头文库上搜索。
药物合成优化-绿色环保新工艺
网络安全运营中心的技术和实践
环境教育与公众参与-第2篇分析
五金行业跨境电商与全球化发展
量化交易策略的执行算法优化
食品中营养成分的检测与评价
牛黄清火丸抗过敏性鼻炎作用与信号通路机制
新能源在航空航天领域的机遇
物联网企业信息系统定制开发的智能制造与工业0
纤维素纳米晶增强纺织材料的性能研究
污染物生态风险评估与防控技术
无人船在海洋经济中的应用
智慧城市与专业服务业产业融合发展策略研究
基于光子的量子信息处理研究
奥拉西坦治疗创伤后应激障碍的研究
四元组群表示理论及应用
农业品牌建设与营销策略研究
复杂网络中的结构筛选
高血压并发症健康教育干预效果
中药材仓储国际化与全球化发展
2022-03-24 12页
2022-03-24 11页
2022-03-24 10页
2022-03-24 25页
2022-03-24 13页
2022-03-24 18页
2022-03-24 10页
2022-03-24 32页
2022-03-24 8页
2022-03-24 9页