Spark操作外部数据源--MySQL

操作MySQL的数据:
spark.read.format("jdbc").option("url", "jdbc:mysql://localhost:3306/sparksql").option("dbtable", "sparksql.TBLS").option("user", "root").option("password", "root").option("driver", "com.mysql.jdbc.Driver").load()

java.sql.SQLException: No suitable driver

import java.util.Properties
val connectionProperties = new Properties()
connectionProperties.put("user", "root")
connectionProperties.put("password", "root")
connectionProperties.put("driver", "com.mysql.jdbc.Driver")

val jdbcDF2 = spark.read.jdbc("jdbc:mysql://localhost:3306", "sparksql.TBLS", connectionProperties)

CREATE TEMPORARY VIEW jdbcTable
USING org.apache.spark.sql.jdbc
OPTIONS (
url "jdbc:mysql://localhost:3306",
dbtable "sparksql.TBLS",
user ‘root‘,
password ‘root‘,
driver ‘com.mysql.jdbc.Driver‘
)

外部数据源综合案例
create database spark;
use spark;

CREATE TABLE DEPT(
DEPTNO int(2) PRIMARY KEY,
DNAME VARCHAR(14) ,
LOC VARCHAR(13) ) ;

INSERT INTO DEPT VALUES(10,‘ACCOUNTING‘,‘NEW YORK‘);
INSERT INTO DEPT VALUES(20,‘RESEARCH‘,‘DALLAS‘);
INSERT INTO DEPT VALUES(30,‘SALES‘,‘CHICAGO‘);
INSERT INTO DEPT VALUES(40,‘OPERATIONS‘,‘BOSTON‘);

 1 package com.imooc.spark
 2
 3 import org.apache.spark.sql.SparkSession
 4
 5 /**
 6  * 使用外部数据源综合查询Hive和MySQL的表数据
 7  */
 8 object HiveMySQLApp {
 9
10   def main(args: Array[String]) {
11     val spark = SparkSession.builder().appName("HiveMySQLApp")
12       .master("local[2]").getOrCreate()
13
14     // 加载Hive表数据
15     val hiveDF = spark.table("emp")
16
17     // 加载MySQL表数据
18     val mysqlDF = spark.read.format("jdbc").option("url", "jdbc:mysql://localhost:3306").option("dbtable", "spark.DEPT").option("user", "root").option("password", "root").option("driver", "com.mysql.jdbc.Driver").load()
19
20     // JOIN
21     val resultDF = hiveDF.join(mysqlDF, hiveDF.col("deptno") === mysqlDF.col("DEPTNO"))
22     resultDF.show
23
24
25     resultDF.select(hiveDF.col("empno"),hiveDF.col("ename"),
26       mysqlDF.col("deptno"), mysqlDF.col("dname")).show
27
28     spark.stop()
29   }
30
31 }

原文地址:https://www.cnblogs.com/arthurLance/p/10628375.html

时间: 2024-08-28 04:34:46

Spark操作外部数据源--MySQL的相关文章

Spark操作外部数据源--parquet

处理parquet数据 RuntimeException: file:/Users/arthurlance/app/spark-2.2.0-bin-2.6.0-cdh5.7.0/examples/src/main/resources/people.json is not a Parquet file val DEFAULT_DATA_SOURCE_NAME = SQLConfigBuilder("spark.sql.sources.default") .doc("The de

【H3 BPM工作流程产品小故事】第十一篇 操作外部数据源

小明:可以获取ERP数据了…… 老李:哦,这么快?小伙子,我非常看好你,来来,别急着走,再陪我聊会…… 小明:……您老人家不是又要改流程吧? 老李:没有没有,哎嘿嘿嘿,我们这不都是为公司效率着想嘛,这次真不改流程. 小明:……那还是有东西要改了? 老李:啊,再帮个小忙,你们既然数据是从ERP获取的,那我们审批完成后的数据,也写入到ERP去吧.这个是数据表格 老李的ERP写入数据表 小明:表格都做好了……还有多少坑等着我…… 接着依然是大毛的出场时间. 大毛:其实这个和上次的获取外部数据很类似的

Spark SQL之External DataSource外部数据源(二)源代码分析

上周Spark1.2刚公布,周末在家没事,把这个特性给了解一下,顺便分析下源代码,看一看这个特性是怎样设计及实现的. /** Spark SQL源代码分析系列文章*/ (Ps: External DataSource使用篇地址:Spark SQL之External DataSource外部数据源(一)演示样例 http://blog.csdn.net/oopsoom/article/details/42061077) 一.Sources包核心 Spark SQL在Spark1.2中提供了Exte

Spark SQL之External DataSource外部数据源(一)示例

一.Spark SQL External DataSource简介 随着Spark1.2的发布,Spark SQL开始正式支持外部数据源.Spark SQL开放了一系列接入外部数据源的接口,来让开发者可以实现. 这使得Spark SQL支持了更多的类型数据源,如json, parquet, avro, csv格式.只要我们愿意,我们可以开发出任意的外部数据源来连接到Spark SQL.之前大家说的支持HBASE,Cassandra都可以用外部数据源的方式来实现无缝集成. (Ps: 关于Exter

Spark SQL之External DataSource外部数据源(二)源码分析

上周Spark1.2刚发布,周末在家没事,把这个特性给了解一下,顺便分析下源码,看一看这个特性是如何设计及实现的. /** Spark SQL源码分析系列文章*/ (Ps: External DataSource使用篇地址:Spark SQL之External DataSource外部数据源(一)示例 http://blog.csdn.net/oopsoom/article/details/42061077) 一.Sources包核心 Spark SQL在Spark1.2中提供了External

第十一篇:Spark SQL 源码分析之 External DataSource外部数据源

上周Spark1.2刚发布,周末在家没事,把这个特性给了解一下,顺便分析下源码,看一看这个特性是如何设计及实现的. /** Spark SQL源码分析系列文章*/ (Ps: External DataSource使用篇地址:Spark SQL之External DataSource外部数据源(一)示例 http://blog.csdn.net/oopsoom/article/details/42061077) 一.Sources包核心 Spark SQL在Spark1.2中提供了External

greenplum使用gplink连接外部数据源

作为一个基于postgresql开发的数据仓库,随着近几年大数据概念的兴起也备受关注. 由于GP是近近几年才开源的数据库,网上基本上找不到什么资料,很多时候只能看官方文档,而文档全为英文,对于英文很烂的本人表示真的很无力... 原理: greenplum 支持gpfdist协议外部表,gpfdist协议支持自定义transform. gplink 使用jdbc连接外部数据源,定义transform,将jdbc数据源的数据转换为text格式导入GP或HAWQ. 官方提供的有greenplum.sq

Scala学习——操作外部数据

scala操作外部数据 一.scala读取文件及网络数据 package top.ruandb.scala.Course08 import scala.io.Source object FileApp { def main(args: Array[String]): Unit = { val FILEPATH = "D:\\test\\a.txt" val URL = "https://www.baidu.com" readLine(FILEPATH) readCh

Scala操作外部数据

Scala操作外部数据: 1.操作文件 2.操作XML 3.操作MySQL 读取文件: object FileApp { def main(args: Array[String]): Unit = { //system file val file = Source.fromFile("Users/rocky/imooc/hello.txt") (scala.io.Codec.UTF8) def readLine(): Unit = { for(line <- file.getLi