hive导入数据到【有分区的表】(partitioned by)就报错,提示hive.partition表不存在?

发布于 2022-01-02 20:06:17 字数 1310 浏览 869 评论 6

服务器centos7.2

hive版本0.12

hadoop版本2.7.6

----------------分割线-----------------

创建table的时候,用的外部表,放置于mysql,其中使用了partitioned by 关键字 (

partitioned by (logdate string,hour string)

)。

具体代码片段为:

create external table people(id int,name string)

partitioned by (logdate string,hour string) row format delimited

fields terminated by ',';

--------------------------------

但是!! 往表里面存入数据时就报错为hive.partition doesn't exists !!!!

java.sql.SQLSyntaxErrorException: Table 'hive.PARTITIONS' doesn't exist

mysql那边看了,hive数据库生成了,但确实没有partition表。只有下图。

 

select * 之后确实是我添加的partition字段

 

可是没办法改这个表的名字为partition啊(似乎是因为mysql关键字存在partition)!!

 

 

那我该如何存取数据进入这个hive表??

求帮助,谢谢。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

把回忆走一遍 2022-01-07 20:35:16

我发现了,md,是mysql驱动包版本的原因,炸了。

输什么也不输骨气 2022-01-07 20:34:19

一摸一样的问题,搞了一天,请问楼主解决了吗

青萝楚歌 2022-01-07 20:15:48

我很好奇我得图是不能刷出来吗?在其他人的视角里面到底是怎么样的? 我这边都能看见。。 感谢你的回答,虽然我暂时没有解决这个问题,但是并不完全影响我目前的实验。

掩饰不了的爱 2022-01-07 18:35:58

你的图挂了 ,看不出来问题。我把我的映射语句发出来,你做个参考吧

 

-- 如果分区存在则删除
ALTER TABLE yourtable DROP IF EXISTS PARTITION (day=${day},hour=${hour});
ALTER TABLE yourtable ADD IF NOT EXISTS PARTITION (day=${day},hour=${hour}) LOCATION 'your hdfs location';

 

高跟鞋的旋律 2022-01-07 13:20:42

我是想从hdfs 加载数据到hive表内,,, 只是元数据放在mysql里面而已

离不开的别离 2022-01-06 18:15:57

从mysql导入到hive有几种办法,最简单的一个给你说下,你参考下

1.我看你hive表内容是逗号分隔。然后建了分区,那么你可以在hdfs上找到对应目录了。

2.将mysql数据导出,用outfile或者程序导出都可以,导出成逗号分隔的文件,列和hive对应上。

3.将导出文件上传到hdfs对应分区。

这样就可以了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文