sparksql连接mysql
1、方法1:分别将两张表中的数据加载为DataFrame
/*
* 方法1:分别将两张表中的数据加载为DataFrame
* */
/*
Map<String,String> options = new HashMap<String,String>();
options.put("url","jdbc:mysql://localhost:3306/tset");
options.put("driver","com.mysql.jdbc.Driver");
options.put("user","root");
options.put("password","admin");
options.put("dbtable","information");
Dataset myinfromation = sqlContext.read().format("jdbc").options(options).load();
//如果需要多张表,则需要再put一遍
options.put("dbtable","score");
Dataset scores = sqlContext.read().format("jdbc").options(options).load();*/
2、方法2:分别将mysql中两张表的数据加载为DataFrame
//方法2:分别将mysql中两张表的数据加载为DataFrame
DataFrameReader reader = sqlContext.read().format("jdbc");
reader.option("url","jdbc:mysql://127.0.0.1:3306/test?serverTimezone=GMT");
reader.option("driver","com.mysql.cj.jdbc.Driver");
reader.option("user","root");
reader.option("password","admin");
reader.option("dbtable","information");
Dataset myinformation = reader.load();
reader.option("dbtable","score");
Dataset scores = reader.load();
3、问题:
在程序运行过程报错
(1)
解决:
在idea中加入jar包

(2)运行报错
The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents .....
解决:添加信息。
dbc:mysql://127.0.0.1:3306/test?serverTimezone=GMT

4、成功运行

附:程序源码:
package sparkSQl; import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.sql.DataFrameReader;
import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.SQLContext; import java.util.HashMap;
import java.util.Map; public class mysqlToDataFrame {
public static void main(String[] args) {
//首先新建一个sparkconf定义参数
SparkConf conf = new SparkConf().setMaster("local").setAppName("JDBCDataSource");
//创建sparkContext,是通往spark集群的唯一通道
JavaSparkContext sc = new JavaSparkContext(conf);
//新建一个sparksql
SQLContext sqlContext = new SQLContext(sc);
//sparksql连接mysql
/*
* 方法1:分别将两张表中的数据加载为DataFrame
* */
/*Map<String,String> options = new HashMap<String,String>();
options.put("url","jdbc:mysql://localhost:3306/tset");
options.put("driver","com.mysql.jdbc.Driver");
options.put("user","root");
options.put("password","admin");
options.put("dbtable","information");
Dataset myinfromation = sqlContext.read().format("jdbc").options(options).load();
//如果需要多张表,则需要再put一遍
options.put("dbtable","score");
Dataset scores = sqlContext.read().format("jdbc").options(options).load();*/ //方法2:分别将mysql中两张表的数据加载为DataFrame
DataFrameReader reader = sqlContext.read().format("jdbc");
reader.option("url","jdbc:mysql://127.0.0.1:3306/test?serverTimezone=GMT");
reader.option("driver","com.mysql.cj.jdbc.Driver");
reader.option("user","root");
reader.option("password","admin");
reader.option("dbtable","information");
Dataset myinformation = reader.load();
reader.option("dbtable","score");
Dataset scores = reader.load(); //将两个DataFrame转换为javapairrdd,执行join操作
myinformation.registerTempTable("info");
scores.registerTempTable("score"); //定义sql语句
String sql = "select info.name,age"
+" from info join score"
+" on(info.name=score.name)"
+" where score.score>90"; Dataset sql2 = sqlContext.sql(sql);
sql2.show(); }
}
sparksql连接mysql的更多相关文章
- Spark-SQL连接MySql关系型数据库
本文主要分析Spark SQL官方文档中有关于JDBC To Other Databases部分,以MySQL数据库为例,结合数据读写操作的实例代码进行详细的分析.本文中的代码需要使用到Mysql J ...
- Spark之 使用SparkSql操作mysql和DataFrame的Scala实现
通过读取文件转换成DataFrame数据写入到mysql中 package com.zy.sparksql import java.util.Properties import org.apache. ...
- nodejs进阶(6)—连接MySQL数据库
1. 建库连库 连接MySQL数据库需要安装支持 npm install mysql 我们需要提前安装按mysql sever端 建一个数据库mydb1 mysql> CREATE DATABA ...
- 【初学python】使用python连接mysql数据查询结果并显示
因为测试工作经常需要与后台数据库进行数据比较和统计,所以采用python编写连接数据库脚本方便测试,提高工作效率,脚本如下(python连接mysql需要引入第三方库MySQLdb,百度下载安装) # ...
- Node.js Express连接mysql完整的登陆注册系统(windows)
windows学习环境: node 版本: v0.10.35 express版本:4.10.0 mysql版本:5.6.21-log 第一部分:安装node .Express(win8系统 需要&qu ...
- PDO连接mysql数据库
1.PDO简介 PDO(PHP Data Object) 是PHP 5 中加入的东西,是PHP 5新加入的一个重大功能,因为在PHP 5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接 ...
- 使用ABP EntityFramework连接MySQL数据库
ASP.NET Boilerplate(简称ABP)是在.Net平台下一个很流行的DDD框架,该框架已经为我们提供了大量的函数,非常方便与搭建企业应用. 关于这个框架的介绍我就不多说,有兴趣的可以参见 ...
- jmeter之连接mysql和SQL Server配置
下载jdbc驱动 在使用jmeter做性能或自动化测试的时候,往往需要直接对数据库施加压力,或者某些参数只能从数据库获取,这时候就必须使用jmeter连接数据库. 1.下载对应的驱动包 mysql驱动 ...
- Windows操作系统下远程连接MySQL数据库
用Eclipse做一个后台项目,但是数据库不想放在本地电脑,于是买了一个腾讯云服务器(学生有优惠,挺便宜的),装上MySQL数据库,但是测试连接的时候,发现总是连接不是上,但是本地数据库可以连接,于是 ...
随机推荐
- ie8开发人员工具无法使用,按f12任务栏里出现任务,但是窗体不弹出
楼主解决了么,刚出现你这样的问题,找了N久,终于解决了,他娘的,偏方啊任务栏不是出现那个箭头么,点击后没反应是吧在缩略图上点右键-最大化,然后就出来了,ctrl+p反正是可以出来调试模式 神人哪,IE ...
- 一起做RGB-D SLAM(8) (关于调试与补充内容)
“一起做”系列完结后,我收到不少同学给我的反馈.他们提了一些在程序编译/运行过程中的问题.我把它们汇总起来,组成了这个“补充篇”.你也可以看成是一个Q&A. Q: OpenCV的版本?A: 我 ...
- kaggle-泰坦尼克号Titanic-1
大家都熟悉的『Jack and Rose』的故事,豪华游艇倒了,大家都惊恐逃生,可是救生艇的数量有限,无法人人都有,副船长发话了『lady and kid first!』,所以是否获救其实并非随机,而 ...
- mongo学习- 聚合project操作
mongodb中聚合project操作,必须和其他的聚合一起使用,它的作用有以下几个: 1.返回我们想要显示的的字段 {"$project":{"name":1 ...
- WebClient使用与IIS7最大上传文件--升级&引导窗口&目录同步完整解决方法
IIS7最大上传文件说明:http://www.mzwu.com/article.asp?id=2449 WebClient使用说明使用using 及时回收资源 using(var wc=new W ...
- win2003 ent 64 + mssql ent 64
1.打win2003补丁(取消IE8.0)2.msconfig->boot.int->高级中,将内核改成83.将cd1,cd2,高到Servers,Tools目录中,并保证Servers, ...
- python sublime run快捷键设置
一.Ctrl+Shift+P进行插件“sublimeREPL”安装 二.打开preferences->Key Binding-User,写入以下内容 [ { "keys": ...
- [label][OS] 制作 U 盘安装 Windows 7
U盘安装完美的WIN7操作系统教程 [编辑] 请使用正版系统 http://item.jd.com/965031.html 以保证您的电脑信息安全 此教程适用与 win7及win8 准备工作 ...
- Android-MediaPlayer-视频频播放-异步准备
上两篇博客,Android-MediaPlayer-音频播放-普通准备,Android-MediaPlayer-音频播放-异步准备,主要是讲解了音频(.mp3文件)音乐
- task4: 结对编程-词频统计[修改版]
问题描述: 读取一个文件,统计其中单词出现次数,并按从高到低的顺序显示,相同顺序的字典序排列. 思路: 基于上次的程序用正则提取出文本里的单词,然后利用字典计数(先get,为null则置1,不为nul ...