Spark 1.4连接mysql诡异的问题及解决

在spark-default.conf文件中明明配置了mysql的数据源连接

随后启动spark-shell 执行如下测试代码:

import org.apache.spark.{SparkContext, SparkConf}
import org.apache.spark.sql.{SaveMode, DataFrame}
import org.apache.spark.sql.hive.HiveContext

val mySQLUrl = "jdbc:mysql://localhost:3306/yangsy?user=root&password=yangsiyi"

  val people_DDL = s"""
            CREATE TEMPORARY TABLE PEOPLE
            USING org.apache.spark.sql.jdbc
            OPTIONS (
              url    ‘${mySQLUrl}‘,
              dbtable     ‘person‘
            )""".stripMargin

    sqlContext.sql(people_DDL)
    val person = sql("SELECT * FROM PEOPLE").cache()

val name = "name"
val targets = person.filter("name ="+name).collect()

collect()的时候报找不到driver

这个问题就很诡异了。。数据源连接也没错啊,毕竟在hive的metastore也是用的这个啊。。最终只能在启动spark-shell的时候同时引入jar包了= =

./spark-shell --jars /usr/local/spark-1.4.0-bin-2.5.0-cdh5.2.1/lib/mysql-connector-java-5.1.30-bin.jar

随后再执行就OK了。。诡异。。

或者在执行collect()之前引入mysql的jar包也可以

sqlContext.sql("add jar /usr/local/spark-1.4.0-bin-2.5.0-cdh5.2.1/lib/mysql-connector-java-5.1.30-bin.jar")

不过总感觉不妥。。有解决办法的求指导哈~

时间: 2024-10-29 07:15:51

Spark 1.4连接mysql诡异的问题及解决的相关文章

远程连接Mysql失败的问题的解决的原因

在CentOS环境下,安装完Mysql后,root的密码为空,需要去设置密码才能使用,设置密码的方法如下: /usr/bin/mysqladmin -u root password yourpasswd 注意把上述命令的yourpasswd替换为自己的密码,这个时候如果使用以下命令成功登陆Mysql终端,说明密码设置成功: mysql -u root -p 此时,远程连接Mysql的时候,会提示你无法访问,查看系统表的user表,你回发现用户只有从localhost访问的权限: mysql> s

远程桌面连接MySQL遇到的问题及解决方法总结

背景提要:想用Delphi做一个可以连接Mysql数据库的桌面应用程序.其中遇到了一些让自己很苦恼的问题.因为自己是新手,Delphi用的不熟,FireDAC这个连接数据库里控件更是没有接触过,对安装在CentOS上的MySQL更是一知半解.弄了半天,做出来的东西就是连接不上数据库.搞得一时间很头大.但最后还是找到了问题所在,都是处在了MySQL服务器设置上了. 问题一:MySQL服务器的端口没有打开.3306的端口不是默认打开的.需要在/etc/sysconfig/iptables配置文件中添

远程连接MySQL慢的原因及解决

因在网络部署了MySQL服务器,目前没有负载,本地连接的时候速度也正常,但就是通过网络连接的时候特别慢,最后检查发现原来是DNS解析的问题 在MySQL的配置文件/etc/my.cnf中的[mysqld]下加入 skip-name-resolve 重新启动,测试速度正常.

web 前端:连接mysql中文乱码问题的解决办法

当使用tomcat部署servlet连接时,总是出现各种原因的中文乱码问题.有的是因为mysql的默认字符集的问题,有的是客户端的字符配置问题. 现在对于这两种问题进行配置,来解决乱码. 服务器端(mySQL)的字符集配置: show charset://显示支持的所有字符集,大约有40多种: SHOW VARIABLES LIKE 'character_set_%';//查看SQL使用的编码格式: set character_set_client = utf8;//将SQL的一个属性改为utf

navicat连接mysql出现2059错误的解决方法

安装navicat之后新建连接出现了2059的错误 网上查询过后,发现这个错误出现的原因是在mysql8之前的版本中加密规则为mysql_native_password,而在mysql8以后的加密规则为caching_sha2_password. 解决此问题有两种方法,一种是更新navicat驱动来解决此问题,一种是将mysql用户登录的加密规则修改为mysql_native_password.:根据网上大部分建议采取了第二种方式: 1.打开doc窗口win+d输入cmd打开 进入mysql s

DotNetCore跨平台~EFCore2.0连接Mysql的烦恼-已解决

回到目录 对于传统的nuget包,我们习惯上用官方或者大型组织的,因为它们比较考靠谱,但就在前两天.net core2.0发布后,我把efcore也升级到2.0了,mysql.EfCore也升级到支持2.0的最新版了,然后奇葩的事情发生了,EF用不了了! Mysql和EF的包包信息 Microsoft.EntityFrameworkCore 2.0.0 MySql.Data.EntityFrameworkCore  8.0.8-dmr 上面两个大包包都是官方的,微软的EF和Oracle的MySq

基于Python3.6使用Django框架连接mysql数据库的驱动模块安装解决办法

解决办法1 使用PyMySQL模块,直接使用pip install pymysql即可. 参考文章:https://www.cnblogs.com/wcwnina/p/8719482.html 原文内容: python3不支持MySQLdb,可用pymysql代替.cmd安装pymysql:pip install pymysql. 在项目文件夹下的_init_.py添加如下代码即可. import pymysql pymysql.install_as_MySQLdb() 然后在Terminal中

远程连接MySQL报错ERROR 2003解决办法

转自https://blog.csdn.net/hjwang1/article/details/51669223 问题代码代码 ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.0.19' (111) ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.0.19' (111) 这个 原因就是Mysql数据库的默认配置文件my.cnf(linux下)中的

mac 连接mysql提示 Warning: mysqli::real_connect(): (HY000/2002): No such file or directory

mac 连接mysql的时候提示 Warning: mysqli::real_connect(): (HY000/2002): No such file or directory [说明1]MAC下MYSQL的安装路径:/usr/local/mysql-5.5.28-osx10.6-x86 数据库的数据文件在该目录的data文件夹中: 命令文件在bin文件夹中. [说明2]通过终端打开MYSQL命令行的方法:/usr/local/mysql-5.5.28-osx10.6-x86/bin/mysq