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的更多相关文章

  1. Spark-SQL连接MySql关系型数据库

    本文主要分析Spark SQL官方文档中有关于JDBC To Other Databases部分,以MySQL数据库为例,结合数据读写操作的实例代码进行详细的分析.本文中的代码需要使用到Mysql J ...

  2. Spark之 使用SparkSql操作mysql和DataFrame的Scala实现

    通过读取文件转换成DataFrame数据写入到mysql中 package com.zy.sparksql import java.util.Properties import org.apache. ...

  3. nodejs进阶(6)—连接MySQL数据库

    1. 建库连库 连接MySQL数据库需要安装支持 npm install mysql 我们需要提前安装按mysql sever端 建一个数据库mydb1 mysql> CREATE DATABA ...

  4. 【初学python】使用python连接mysql数据查询结果并显示

    因为测试工作经常需要与后台数据库进行数据比较和统计,所以采用python编写连接数据库脚本方便测试,提高工作效率,脚本如下(python连接mysql需要引入第三方库MySQLdb,百度下载安装) # ...

  5. Node.js Express连接mysql完整的登陆注册系统(windows)

    windows学习环境: node 版本: v0.10.35 express版本:4.10.0 mysql版本:5.6.21-log 第一部分:安装node .Express(win8系统 需要&qu ...

  6. PDO连接mysql数据库

    1.PDO简介 PDO(PHP Data Object) 是PHP 5 中加入的东西,是PHP 5新加入的一个重大功能,因为在PHP 5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接 ...

  7. 使用ABP EntityFramework连接MySQL数据库

    ASP.NET Boilerplate(简称ABP)是在.Net平台下一个很流行的DDD框架,该框架已经为我们提供了大量的函数,非常方便与搭建企业应用. 关于这个框架的介绍我就不多说,有兴趣的可以参见 ...

  8. jmeter之连接mysql和SQL Server配置

    下载jdbc驱动 在使用jmeter做性能或自动化测试的时候,往往需要直接对数据库施加压力,或者某些参数只能从数据库获取,这时候就必须使用jmeter连接数据库. 1.下载对应的驱动包 mysql驱动 ...

  9. Windows操作系统下远程连接MySQL数据库

    用Eclipse做一个后台项目,但是数据库不想放在本地电脑,于是买了一个腾讯云服务器(学生有优惠,挺便宜的),装上MySQL数据库,但是测试连接的时候,发现总是连接不是上,但是本地数据库可以连接,于是 ...

随机推荐

  1. centos6.5修改root密码

    转:https://blog.csdn.net/cui1834515/article/details/77860113

  2. [Training Video - 1] [Selenium Basics] [Download and Install Selenium]

    Download Selenium Jars Configure jars in eclipse Webdriver http://docs.seleniumhq.org/download/ Sele ...

  3. 有些标签的class有多个值,用空格隔开的,是什么意思阿?

    这个div同时应用了三个class.三个class的设置都会对它起作用,相互冲突时,越后面的class优先权越高.

  4. Java解析XML文档——dom解析xml

    一.前言 用Java解析XML文档,最常用的有两种方法:使用基于事件的XML简单API(Simple API for XML)称为SAX和基于树和节点的文档对象模型(Document Object M ...

  5. Android系统编译与测试

    1.Android系统分析 2.下载Android源代码(不包括Linux内核部分) 下载好了的Android_5.01.tar.gz,通过samba复制到ubuntu里,再解压之. 可以看到Andr ...

  6. 微信小程序进行地图导航使用地图功能

    之前我写过的文章当中,提过小程序的打包大小.所以特地去下载一个区域的地图的这种方法,是不存在的. 我用的导航主要使用的是应用外的导航,这篇文章可能对于非常熟悉小程序的小伙伴来说就是小case,所以只适 ...

  7. Exception in thread "main" java.lang.Error: Unresolved compilation problem

    初学java,使用eclipse编译时,可能会遇到如下图所示的编译错误(Exception in thread "main" java.lang.Error: Unresolved ...

  8. CSS—— em的详解

    字体大小在浏览器的默认样式表中有规定.一般采用em为单位,也就是相对单位,1em=16像素. 同时,像P h1等等标签都采用浏览器默认的em单位,P为1em,h1为2em等等. 两条重要的规则: 1. ...

  9. Synchronizer解析(为AQS打个铺垫)

    ReentranceLock 和 Semaphore有很多共同点,他们都像是一个gate一样, 来控制让哪些线程阻塞,让哪些线程通过. 不同的是,ReentranceLock允许通过的量是1,Sema ...

  10. Geronimo 叛逆者: 使用集成软件包:Codehaus 的 Woodstox(转载)

    XML 解析器通常是高性能.健壮应用程序的关键.传统的 XML 解析技术包括文档对象模型(Document Object Model,DOM)和 Simple API for XML (SAX).现在 ...