原创
Spark执行SQL报错
温馨提示:
本文最后更新于 2018年05月09日,已超过 2,389 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我。
问题描述:
在Spark命令行报错信息,说我SQL语法错误,拉倒吧,还语法错误,show databases
都出错我信你个鬼,糟老头子,坏得很。
NestedThrowablesStackTrace:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'OPTION SQL_SELECT_LIMIT=DEFAULT' at line 1
在Spark-shell中,只要一执行SQL就报错,但是可以正确结果可以出来。
在Spark-shell:
在beeline:
解决办法:
这是因为我先用beeline连接的hive,然后,我在beeline命令行创建了一个数据库和数据表,但是,我没给权限,结果,我在Spark-Shell中一执行SQL查hive数据表就报错。
所以,我在MySQL命令行给了所有数据库权限:
###设置root授权访问以上所有的数据库:
mysql> grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
###刷新权限
mysql> flush privileges;
成功:
2.在idea使用Spark连接hive查询不到数据
#报错1:
Exception in thread "main" java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI:
#报错2:
无法解析数据库或者数据表
这个问题是在Spark2.2之前才会有的,我Hive1X、2X、3X都试了,还是不行,结果在spark官网看了一上午,发现是版本的问题,我孩一直以为是我的元数据的问题,折腾四我了,好气。
解决办法
换spark2.2之后的。
- 本文标签: Spark
- 本文链接: http://www.lzhpo.com/article/48
- 版权声明: 本文由lzhpo原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权