Hive之加载csv格式数据到hive

场景:

今天接了一个需求,将测试环境的hive数据导入到正式环境中。但是不需要整个流程的迁移,只需要迁移ads表


解决方案:

拿到这个需求首先想到两个方案:

1、将数据通过insert into语句导出,然后运行脚本

2、数据导出成csv格式的数据,然后Load进hive

方案一的实践过程中,发现几个问题,然后果断进行了方案二。就讲讲方案一存在的问题

  1. ads数据量较大。存在18W的数据量,对于大集群而言不值一提,但是公司的堡垒机资源较小,且用DBServer不支持18WSQL执行
  2. DBServer hive不支持SQL脚本运行,只能粘贴复制,还是问题一一样资源太小
    最终采用方案二

实践过程:

这里就说说方案二遇到的问题以及解决方案

  1. hive查询结果导出CSV时间格式问题。下图就我设置了CSV导出格式,但是还是存在问题,且时间格式还存在引号的情况,所以将数据导出来之后,用WPS进行打开,对时间格式进行一个调整,然后在保存为CSV结构的数据,用nodepad++打开即可

  2. hive导入成功但数据不存在。下面截图就展示了存在的问题。这个问题就是因为hive建表的问题,hive建表的格式不是文本格式导致的。我开始用的org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat ,后续如果不指定格式,默认格式就是org.apache.hadoop.mapred.TextInputFormat 即可导入进去

  3. hive数据导入之后一行的数据都存在某一个字段中。这个问题是因为hive没有指定数据导入后按照什么方式进行分割。SET SERDEPROPERTIES ('field.delim'=',', 'serialization.format'=' ')指定这个参数后,hive会将csv导入的数据按照逗号分隔。但是请注意,你的数据存在json数据或者别的逗号数据,导入后可能会产生数据错位的情况。在条件允许的情况下,将json和数据中的逗号,在WPS中用中文逗号替换即可。

  4. 其他的解决方案:其实这种类型的问题解决方案应该很多。例如:shell脚本执行hive insert语句、将数据插入到mysql用ETL的方式抽取到hive目标表。

总结:

导入数据考验一个细心的程度其实问题也不难,就是麻烦。如果其他网友有更好的解决办法,欢迎留言

相关推荐
零一科技5 小时前
windows安装VMware Workstation Pro
hadoop
yumgpkpm10 小时前
2026软件:白嫖,开源,外包,招标,晚进场(2025年下半年),数科,AI...中国的企业软件产业出路
大数据·人工智能·hadoop·算法·kafka·开源·cloudera
kylezhao201914 小时前
深入浅出地理解 C# WPF 中的属性
hadoop·c#·wpf
迎仔14 小时前
01-Hadoop 核心三剑客通俗指南:从“单机搬砖”到“包工队”
大数据·hadoop·分布式
TTBIGDATA19 小时前
【Ranger】Ranger Admin 配置 Knox 策略时出现,the trustAnchors parameter must be non-empty
大数据·hadoop·ambari·kerberos·ranger·knox·bigtop
BYSJMG19 小时前
计算机毕设推荐:基于大数据的各省碳排放数据分析与可视化系统实战
大数据·vue.js·hadoop·后端·信息可视化·数据分析·课程设计
市场部需要一个软件开发岗位2 天前
数据仓库相关内容分享
数据库·数据仓库·oracle
BYSJMG2 天前
计算机毕设选题推荐:基于Hadoop的交通事故数据可视化分析系统
大数据·vue.js·hadoop·分布式·后端·信息可视化·课程设计
Gain_chance2 天前
32-学习笔记尚硅谷数仓搭建-DWD层首日数据装载脚本及每日数据装载脚本
大数据·数据仓库·hive·笔记·学习
sheji34162 天前
【开题答辩全过程】以 基于hadoop的空气质量数据分析及可视化系统为例,包含答辩的问题和答案
大数据·hadoop·数据分析