load:

hive中load命令的使用语法

LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]

'LOCAL'表示输入文件在本地文件系统上。如果'LOCAL'被省略,那么它会在HDFS中查找该文件。

关键字'覆盖'表示表中的现有数据被删除。如果忽略'OVERWRITE'关键字,则将数据文件附加到现有数据集。

注意:

  • 加载命令不执行对模式的数据验证。使用load data形式往hive表中装载数据时,不会检查字段类型,如果字段类型不一致,使用null值填充。如果字段过多则会丢弃,缺失则会使用null值填充。
  • 如果文件位于hdfs中,则将其移入Hive控制的文件系统名称空间。会将数据从HDFS文件/目录加载到表中。
  • 请注意,从HDFS加载数据将导致移动文件/目录,这里是文件的移动,不是复制。因此,该操作几乎是即时的。

坑1:

描述:

使用带'LOCAL'关键字的load命令,想从本地导入数据到hive表中,但是执行报错:No files matching path file

报错找不到文件,但确定当前机器确实存在这个文件。

分析:

  1. 期初怀疑是权限或者用户不对,导致找不到文件。然后chmod、chown了一波,并没有卵用,问题不在这。
  2. 搜素解决了问题,分析为:hive导入数据语句  load data [local] inpath ,是一个服务器端的指令,它是在服务器端执行。因此指定local时表明加载的文件为本地文件,但是这里的local,在hive中指的是 hiveserver 服务所在的机器,而不是hivecli 或 beeline客户端所在的机器(生产环境大都是 hiveserver 和 hivecli不在同一个机器)。

方法:

  1. 把要加载的文件上传到 hiveserver所在的服务器(这一般是不可能的事情),然后执行  load data local inpath [path] [overwrite] into table table_name.
  2. 先将本地文件上传至hdfs,然后使用 load data inpath [hdfspath] [overwrite] into table table_name。

推荐使用第二种方法

hadoop dfs -mkdir /input
hdfs dfs -ls /input  #刚建的文件夹下没有文件
hadoop fs -put  test.txt   /input
hdfs dfs -ls /input  #可以看到文件下有刚上传的文件
#在hive中执行load命令
oad data inpath [hdfspath] [overwrite] into table table_namehdfs dfs -ls /input  #文件夹下的文件发生了移动

一个参考的好连接:https://blog.csdn.net/hao495430759/article/details/80529456

坑2:

描述:

导入到hive中的表数据大量为NULL,只有第一个字段和分区字段有数据,其他字段全为NULL。

分析:

我在关系型数据库oracle导出的数据中每个数据字段的文本限定符为双引号(每个字段用双引号包围),栏位分隔符(字段分隔符)为逗号。但是hive中的表第一个数据字段为string,后面字段不为string。所以只是第一个字段类型一致,也只有它可以导入数据,其它字段类型不匹配,全部为NULL。

方法:

  1. 重新超出oracle数据,文本限定符为“无”,栏位分隔符为“定位”(文本中为^I)。
  2. 在hive中执行命令:show create table test_table_name; 可以看到建表脚本和行列分隔符等信息。hive默认的分割方式,即行为\n,列为^A
  3. 修改数据文件的分隔符,替换为^A
  4. cat -A test.txt #可以看到分隔符为^I
    set -i 's/   /^A/g' test.txt #test.txt原本的分隔符为^I(按“Ctrl+v,Ctrl+i”可以输出),^A(按“Ctrl+v,Ctrl+a”可以输出)
    cat -A test.txt #可以看到分隔符为^A
  5. 在hive中执行load命令。

一个很好的参考链接:https://blog.csdn.net/qq_26442553/article/details/80297028

坑3:

描述:

经过几次踩坑之后数据可以导入到hive中了,但是仔细一看hive表的timestamp类型的字段全部为NULL。

分析:

在Hive中提供了字段类型TIMESTAMP,但其对应的时间格式为yyyy-MM-dd HH:MM:SS,即通过LOAD命令将文本加载到已创建的表中时,只有满足上述格式的内容才可以被正确解析,否则只能识别为NULL。

而我导出的数据时间格式的日期格式符为“/”。

方法:

  1. 重新从oracle中导出数据,注意日期格式符修改为“-”。
  2. 重新load

经过一波操作终于可以导入数据进hive表中。

hive的load踩过的坑相关推荐

  1. hive分隔符_Hive踩过的坑-hive多个分隔符的问题

    今天就说说hive多个分隔符的问题. 多分隔符(列)这个问题,也是之前同事给我一份文件我才发现的... 这份文件上列分隔符是@#| hive建表时,ROW FORMAT DELIMITED FIELD ...

  2. 启动mq 在虚拟机中_记在使用rocketmq client客户端过程中踩到的坑

    前言 最近项目中使用阿里的RocketMQ来做消息队列,具体怎么使用RocketMQ不在本文讨论范围之内,其相关帮助文档可以参考如下链接 本文主要记录在使用rocketmq client时,遇到的一些 ...

  3. SonarQube的安装部署过程中踩过的坑

    在安装和是用sonarqube踩过如下坑,记录一下: 1.java版本不正确 java版本的问题,主要体现在两个方面, 第一个:是需要安装对应电脑版本的jdk, 具体报如下错误: Unable to ...

  4. 那些年我们在spark SQL上踩过的坑

    做了一年延云YDB的开发,这一年在使用spark上真心踩了不少坑,总结一下,希望对大家有所帮助. spark 内存泄露 1.高并发情况下的内存泄露的具体表现 很遗憾,spark的设计架构并不是为了高并 ...

  5. 用vant框架做H5时踩过的坑(下拉刷新、上拉加载等)

    用vant框架做H5时踩过的坑 1. 页面在手机端不能上下滑动,在PC端浏览器正常滑动 说明:在设置了overflow:auto;属性的前提下,H5页面在PC端浏览器里展示可以上下滑动,在ios上可正 ...

  6. 阿里云centos环境之linux上redis安装及踩过的坑(七)

    阿里云centos环境之linux上redis安装及踩过的坑<七> 文章目录 阿里云centos环境之linux上redis安装及踩过的坑<七> 第一:下载上传 第二:解压安装 ...

  7. Pyinstaller 打包程序踩过的坑(1.Failed to execute script ;2.No module named typedefs等问题)

    Pyinstaller 打包程序踩过的坑(1.Failed to execute script ;2.No module named typedefs:3 Could not find or load ...

  8. mac git使用与配置踩过的坑

    #mac git使用与配置踩过的坑 标题mac配置git ssh密钥 参考链接mac配置git ssh key go get安装失败的解决方法 go get约等于git clone+go instal ...

  9. java项目经理也就那么回事_网易PM | 我们之前在需求评审环节踩过的坑...

    原本觉得需求评审也就那么回事儿,大家应该都差不多这么做的,没啥好说的.不过前不久有一位同学问起来我们是怎么做需求评审的,然后发现有一些团队的做法可能还不大一样,他们也还踩着我们之前踩过的坑,他们还在探 ...

最新文章

  1. 电脑日常故障及处理(二)
  2. 韩拓-七牛产品演进之路
  3. 它们才是真正的数学家 寻找自然界中的数学
  4. 报告表明混合云带来IT管理挑战
  5. 自动布局和view 设置frame同时有效
  6. win10 uwp 重启软件
  7. java同步锁-详细易懂
  8. Android跳转小项目-CHANGE页面-Recycylerview、List、Context(二)
  9. 量化研究 | 策略在指数与主连复权的差异化分析(二)
  10. 漏洞复现----11、GlassFish任意文件读取
  11. opencv 二维码定位
  12. LeetCode 725 分隔链表
  13. Android源码分析 - Parcel 与 Parcelable
  14. APP内如何打开某个应用的App Store下载页面
  15. DELPHI快速入门基础教程
  16. matlab疑难问题笔记
  17. [转]英国爱丁堡大学拟开设搜寻外星人课程
  18. Intellij IDEA2017.3免注册码激活步骤-亲测可用
  19. CSS开发-简单布局模板
  20. 计算机系统的四种启动方式是,U盘启动有四种模式?云骑士装机大师教你怎么选...

热门文章

  1. C. Sweets Eating(cf)dp
  2. ArcGIS属性表挂接图片并显示(GIS思维)
  3. 如何拍出唯美日韩风格婚纱照方法
  4. 沈君山《浮生三记》小传部分读书笔记
  5. textbox控件只输入数字
  6. js使用ip和子网掩码计算所在网段
  7. goto 语句让 Go 代码变成意大利面条?
  8. Jenkins设置代理:
  9. 《数学之美》第十四章——余弦定理和新闻的分类
  10. 那是计算机房吗英语的反问句,小学生作文评语大全_学生评语.doc