原创

Spark执行SQL报错

温馨提示:
本文最后更新于 2018年05月09日,已超过 2,270 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我

问题描述:

在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之后的。

本文目录