hive外部表的建立与数据匹配
1.建立hive的外部表匹配hdfs上的数据
出现如下报错:
hive (solar)> select * from solar.ori_mysql_sqoop_open_third_party_user_da limit ;
OK
Failed with exception java.io.IOException:java.io.IOException: Not a file: hdfs://f04/sqoop/open/third_party_user/dt=2016-12-12
Time taken: 0.043 seconds
再来看一下这个表的结构:
hive (solar)> show create table solar.ori_mysql_sqoop_open_third_party_user_da;
OK
CREATE EXTERNAL TABLE `solar.ori_mysql_sqoop_open_third_party_user_da`(
`id` string COMMENT 'from deserializer',
`md5` string COMMENT 'from deserializer',
`appid` string COMMENT 'from deserializer',
`createdtime` string COMMENT 'from deserializer')
ROW FORMAT SERDE
'org.apache.hadoop.hive.serde2.OpenCSVSerde'
WITH SERDEPROPERTIES (
'escapeChar'='\\',
'quoteChar'='\'',
'separatorChar'=',')
STORED AS INPUTFORMAT
'org.apache.hadoop.mapred.TextInputFormat'
OUTPUTFORMAT
'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION
'hdfs://f04/sqoop/open/third_party_user'
TBLPROPERTIES (
'COLUMN_STATS_ACCURATE'='false',
'last_modified_by'='maintain',
'last_modified_time'='',
'numFiles'='',
'numRows'='-1',
'rawDataSize'='-1',
'totalSize'='',
'transient_lastDdlTime'='')
Time taken: 0.024 seconds, Fetched: row(s)
可以发现这个表没有建立分区,但是在hdfs上是有分区的:
hive (solar)> dfs -ls hdfs://f04/sqoop/open/third_party_user
> ;
Found items
-rw-r--r-- maintain supergroup -- : hdfs://f04/sqoop/open/third_party_user/_SUCCESS
drwxr-xr-x - maintain supergroup -- : hdfs://f04/sqoop/open/third_party_user/dt=2016-12-12
-rw-r--r-- maintain supergroup -- : hdfs://f04/sqoop/open/third_party_user/part-m-00000
-rw-r--r-- maintain supergroup -- : hdfs://f04/sqoop/open/third_party_user/part-m-00001
解决方法是删除这个分区目录,就可以匹配数据了:
hive (solar)> dfs -ls -rmr hdfs://f04/sqoop/open/third_party_user/dt=2016-12-12
hive (solar)> select * from solar.ori_mysql_sqoop_open_third_party_user_da limit 10;
OK
2 5086043868858874977 1 1481011995823
4 -724068265655153681 1 1481011997002
2.hive建立有分区的外部表时,发现没有数据
有可能是因为没有加partition,加partiiton后,再查一下数
hive外部表的建立与数据匹配的更多相关文章
- HIVE外部表 分区表
HIVE外部表 分区表 外部表 创建hive表,经过检查发现TBLS表中,hive表的类型为MANAGED_TABLE. 在真实开发中,很可能在hdfs中已经有了数据,希望通过hi ...
- Hive 外部表的练习(多表关联查询,以及分组,子查询)
Hive 外部表的练习 hive创建库和表操作 hive加载数据,4种发放 1.数据放在Linux创建表结构 进行加载 2.先定义表结构.将一个查询select语句结果插入到表中 3.数据先放在hdf ...
- hive外部表删除遇到的一个坑
hive外部表删除遇到的一个坑 操作步骤 创建某个表(create external table xxx location xxx) 插入数据(insert xxx select xxx from x ...
- hive外部表
创建外部表.数据从HDFS获取 只是建立了链接,hdfs中的数据丢失,表中数据也丢失;hdfs数据增加,表中数据也增加 上传文件 创建外部表 删除文件 执行查询语句,发现少了
- Hive 外部表 分区表
之前主要研究oracle与mysql,认为hive事实上就是一种数据仓库的框架,也没有太多另类,所以主要精力都在研究hadoop.hbase,sqoop,mahout,近期略微用心看了下hive. ...
- hive 外部表和内部表的区别和相互转换
Hive内部表和外部表区别 1.创建内部表时,内部表的数据文件是保存在指定的路径的:如若创建外部表,则只记录数据所在的路径,不会对数据位置做改变. 2.删除表的时候,内部表元数据和数据会跟着一起删除. ...
- hive -- 外部表、内部表、临时表
1.外部表 关键字:EXTERNAL 外部表创建时需要指定LOCATION 删除外部表时,数据不被删除 CREATE EXTERNAL TABLE page_view(viewTime INT, us ...
- 如何利用Oracle外部表导入文本文件的数据
同事最近在忙数据一致性比对工作,需要对不同文本文件中的数据进行比对,有的文件较大,记录较多,如果用普通的文本编辑器打开的话,很显然,会很卡,甚至打不开. 基于此,可将该文本文件的数据导入到数据库中,在 ...
- Hive 外部表新增字段或者修改字段类型等不生效
标题比较笼统,实际情况是: 对于Hive 的分区外部表的已有分区,在对表新增或者修改字段后,相关分区不生效. 原因是:表元数据虽然修改成功,但是分区也会对应列的元数据,这个地方不会随表的元数据修改而修 ...
随机推荐
- iOS 消息转发机制
这篇博客的前置知识点是 OC 的消息传递机制,如果你对此还不了解,请先学习之,再来看这篇.这篇博客我尝试用口语的方式像讲述 PPT 一样给大家讲述这个知识点. 我们来思考一个问题,如果对象在收到无法解 ...
- Java中excute,excuteUpdate,excuteQuery的区别
executeQuery(String sql) 执行select语句,它返回的是查询后得到记录集(resultset). executeUpdate(String sql) 执行 ...
- greenDAO3 基本使用
greenDAO3基本使用 greenDAO3开始使用注解的方式定义实体类(entity),并且是通过安装gradle插件来生成代码.之前的版本则是通过建立一个独立的Java-lib工程来存放生成的文 ...
- poj 2774
传送门:http://poj.org/problem?id=2774 裸的后缀数组,我只是为了贴个版而已 代码 #include <cstdio> #include <cmath&g ...
- Excel与Word套打功能使用技巧及EXCEL数据处理成绩
Excel与Word套打功能使用技巧 婚礼邀请友人参加,就需要写请柬.而且写请柬不但要求字写得端正,还不能有错别字,再加上邀请的朋友多,写请柬就是一个劳累活.这时我们利用Word的套打功能,就会让写请 ...
- 【转载】DOS 系统和 Windows 系统有什么关系?为什么windows系统下可以执行dos命令?
作者:bombless 因为不同的系统都叫 Windows ,这些系统在界面上也有一定连续性并且因此可能造成误解,所以有必要稍微梳理一下几个不同的 Windows 系统.首先是 DOS 上的一个图形界 ...
- Android studio Gradle 教程
一 . Gradle基础:https://segmentfault.com/a/1190000002439306 module下的gradle文件: // 声明是Android程序 apply plu ...
- Javascript学习笔记:3种定义函数的方式
①使用函数声明语法定义函数 function sum(num1,num2){ return num1+num2; } ②使用函数表达式定义函数 var sum=function(num1,num2){ ...
- css3 三角形
https://jsbin.com/gexezo/edit?html,css,output https://jsbin.com/gexezo
- python基础编程
1.if else var1 = 100 if var1: print ("1 - if 表达式条件为 true") print (var1) #为0时,条件不成立 var2 = ...