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数据库,但是测试连接的时候,发现总是连接不是上,但是本地数据库可以连接,于是 ...
随机推荐
- 利率计算--web版--软件工程
1.客户说:帮我开发一个复利计算软件. 完成复利公式计算程序,并成功PUSH到github上. 截止时间:3.10晚12点之前. 按照这个要求完成了. 演示. 计算:本金为100万,利率或者投资回报率 ...
- KMP算法,查询匹配串的个数
想不到时隔两年回来重新学习KMP算法还是那么难,不过理解了大概,把例程贴上来,如果是求数量只需要加个count变量记录即可. #include"stdio.h" #include& ...
- sqlserver 2017 linux还原windows备份时的路径问题解决
windows的备份由于路径问题,在Linux上会报错 File 'YourDB_Product' cannot be restored to 'Z:\Microsoft SQL Server\MSS ...
- 获取weibo用户所有的关注列表
1.新浪微博Python SDK笔记——获取粉丝列表或关注列表 http://www.tuicool.com/articles/VnQ3ye 2.friendships/friends关注列表 fri ...
- C语言基础第一次作业
一,1)大学和高中最大的不同是没有人天天看着你,请问大学理想的师生关系是?有何感想? 看了邹欣老师博客中写到的教学基础——师生关系后陷入沉思,邹欣老师在她的博客中直接否认了传统认知的师生关系——蜡烛, ...
- 20155319 2016-2017-2 《Java程序设计》第七周学习总结
20155319 2016-2017-2 <Java程序设计>第七周学习总结 教材学习内容总结 第十二章 Lambda 如果使用JDK8的话,可以使用Lambda特性去除重复的信息. 在只 ...
- URL Scheme
[URL Scheme] 可以通过info.plist注册url types来实现程序自定义的协议,以供外部程序调起. NSURL *myURL = [NSURL URLWithString:@&qu ...
- .NET基础 (20).NET中的数据库开发
ADO NET和数据库程序基础1 什么是关系型数据库2 如何通过SQL语句来实现行列转换3 ADO NET支持哪几种数据源 ADO NET和数据库的连接1 请简要叙述数据库连接池的机制2 如何提高连接 ...
- StringFormate使用
1常规类型的格式化 1.1显示不同转换符实现不同数据类型到字符串的转换 转换符 说明 示例 %s 字符串类型 “mingrisof” %c 字符类型 'm' %b 布尔类型 tru ...
- 更改SQL Server中默认备份文件夹
当你安装SQL Server时,安装路径一般如下:C:\Program Files\Microsoft SQL Server\MSSQL.2\MSSQL.在这个目录下也有数据文件的文件夹和备份文件的文 ...