hive导入数据到【有分区的表】(partitioned by)就报错,提示hive.partition表不存在?
服务器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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
我发现了,md,是mysql驱动包版本的原因,炸了。
一摸一样的问题,搞了一天,请问楼主解决了吗
我很好奇我得图是不能刷出来吗?在其他人的视角里面到底是怎么样的? 我这边都能看见。。 感谢你的回答,虽然我暂时没有解决这个问题,但是并不完全影响我目前的实验。
你的图挂了 ,看不出来问题。我把我的映射语句发出来,你做个参考吧
我是想从hdfs 加载数据到hive表内,,, 只是元数据放在mysql里面而已
从mysql导入到hive有几种办法,最简单的一个给你说下,你参考下
1.我看你hive表内容是逗号分隔。然后建了分区,那么你可以在hdfs上找到对应目录了。
2.将mysql数据导出,用outfile或者程序导出都可以,导出成逗号分隔的文件,列和hive对应上。
3.将导出文件上传到hdfs对应分区。
这样就可以了