分享好友 系统运维首页 频道列表

Spark SQL 编程初级实践2- 编程实现利用 DataFrame 读写 MySQL 的数据

服务器其它  2023-02-07 19:530
编程实现利用 DataFrame 读写 MySQL 的数据
(1)在 MySQL 数据库中新建数据库 sparktest,再创建表 employee,包含如表 6-2 所示的两行数据。
表 6-2 employee 表原有数据
Spark SQL 编程初级实践2- 编程实现利用 DataFrame 读写 MySQL 的数据
(2)配置 Spark 通过 JDBC 连接数据库 MySQL,编程实现利用 DataFrame 插入如表 6-3 所示的两行数据到 MySQL 中,最后打印出 age 的最大值和 age 的总和。
表 6-3 employee 表新增数据
Spark SQL 编程初级实践2- 编程实现利用 DataFrame 读写 MySQL 的数据

 

 

(1)登录mysql:

Spark SQL 编程初级实践2- 编程实现利用 DataFrame 读写 MySQL 的数据

 (2)新建数据库sparktest,新建数据表employee,并输入数据:

Spark SQL 编程初级实践2- 编程实现利用 DataFrame 读写 MySQL 的数据

Spark SQL 编程初级实践2- 编程实现利用 DataFrame 读写 MySQL 的数据

Spark SQL 编程初级实践2- 编程实现利用 DataFrame 读写 MySQL 的数据

 Spark SQL 编程初级实践2- 编程实现利用 DataFrame 读写 MySQL 的数据

 Spark SQL 编程初级实践2- 编程实现利用 DataFrame 读写 MySQL 的数据

Spark SQL 编程初级实践2- 编程实现利用 DataFrame 读写 MySQL 的数据

(3)启动spark-shell,并指定mysql连接驱动jar包(如果你前面已经采用下面方式启动了spark-shell,就不需要重复启动了)

cd /usr/local/spark
./bin/spark-shell \
--jars /usr/local/spark/mysql-connector-java-5.1.40/mysql-connector-java-5.1.40-bin.jar \
--driver-class-path /usr/local/spark/mysql-connector-java-5.1.40-bin.jar

Spark SQL 编程初级实践2- 编程实现利用 DataFrame 读写 MySQL 的数据

 (4)输入程序:

import java.util.Properties
import org.apache.spark.sql.{SQLContext, Row}
import org.apache.spark.sql.types.{StringType, IntegerType, StructField, StructType}
val sqlContext = new SQLContext(sc)
//下面我们设置两条数据表示两个职工信息
val studentRDD = sc.parallelize(Array("3 Mary F 26","4 Tom M 23")).map(_.split(" "))
//下面要设置模式信息
val schema = StructType(List(StructField("id", IntegerType, true),StructField("name", StringType, true),StructField("gender", StringType, true),StructField("age", StringType, true)))
//下面创建Row对象,每个Row对象都是rowRDD中的一行
val rowRDD = studentRDD.map(p => Row(p(0).toInt, p(1).trim, p(2).trim, p(3).trim))
//建立起Row对象和模式之间的对应关系,也就是把数据和模式对应起来
val studentDataFrame = sqlContext.createDataFrame(rowRDD, schema)
//下面创建一个prop变量用来保存JDBC连接参数
val prop = new Properties()
prop.put("user", "root") //表示用户名是root
prop.put("password", "123456") //表示密码是hadoop
prop.put("driver","com.mysql.jdbc.Driver") //表示驱动程序是com.mysql.jdbc.Driver
//下面就可以连接数据库,采用append模式,表示追加记录到数据库sparktest的employee表中
studentDataFrame.write.mode("append").jdbc("jdbc:mysql://localhost:3306/sparktest", "sparktest.employee", prop)

查看更新后的数据表:

Spark SQL 编程初级实践2- 编程实现利用 DataFrame 读写 MySQL 的数据

 

 

 

 

 

查看更多关于【服务器其它】的文章

展开全文
相关推荐
反对 0
举报 0
评论 0
图文资讯
热门推荐
优选好物
更多热点专题
更多推荐文章
ORACLE 分页SQL
这个sql的分页很简单,但是由于十分常用,且通常用于查询大量数据的情况。SELECT * FROM(        SELECT A.*,ROWNUM RN        FROM                     (SELECT * FROM TABLE_XX ) A        WHERE ROWNUM=20)  TL WHERE RN =11 

0评论2023-02-07455

代码中批量执行Oracle SQL语句
  今天在写一个工具(winform),作用是批量的INSERT OR  UPDATE ORACLE数据库中的一个表。  执行的时候老是报错“[911] ORA-00911: invalid character”  我把SQL语句拷贝出来放到PL SQL中去执行,又是对的,因为测试时正好就一条语句,而且我生成语

0评论2023-02-07904

ORM之Dapper操作Sql Server和MySql数据库
1.为什么选择Dapper1)轻量。2)速度快。Dapper的速度接近与IDataReader,取列表的数据超过了DataTable。3)支持多种数据库。Dapper可以在所有Ado.net Providers下工作,包括sqlite, sqlce, firebird, oracle, MySQL, PostgreSQL and SQL Server4)可以映射一对一

0评论2023-02-07817

MySQL同步故障:" Slave_SQL_Running:No" 两种解决办法
进入slave服务器,运行:mysql show slave status\G         .......             Relay_Log_File: localhost-relay-bin.000535              Relay_Log_Pos: 21795072      Relay_Master_Log_File: localhost-bin

0评论2023-02-07815

mysql数据库: 用户管理、pymysql使用、sql注入
本文目录:一、用户管理二、pymysql增删改查三、sql注入攻击  数据安全非常重要 不可能随便分配root账户应该按照不同开发岗位分配不同的账户和权限mysql中 将于用户相关的数据放在mysql库user -db -tables_priv - columns_priv如果用户拥有对所有库的访问权

0评论2023-02-07555

获得某个月的天数(java, mysql, oracle)
java方式:Calendar   cal   =   Calendar.getInstance();  cal.set(Calendar.YEAR,year);  cal.set(Calendar.MONTH,month+1);//2月  int   maxDate   =   cal.getActualMaximum(Calendar.DATE);mysql方式:"SELECT day(LAST_DAY(‘2007-04

0评论2023-02-07941

Python操作mysql数据库出现pymysql.err.ProgrammingError: (1064, "You have an error in your SQL syntax; c
今天在用Python操作mysql数据库出现pymysql.err.ProgrammingError: (1064, "You have an error in your SQL syntax; check报错"SELECT Failure_code,describe from failure_occur_now order by ID DESC LIMIT 1“黄色区域为报错的位置仔细查找,发现没有语法

0评论2023-02-07392

Oracle 笔记(2) ----PL/SQL结构、注释、变量、分支语句
1、PL/SQL块结构:DECLARE ...BEGIN......EXCEPTION........END 注意:BEGIN 和 END之间不能什么语句都没有,如果不需要语句可以写NULL2、变量命名规则:① 变量由字符开头② 可以包含字母、数字、下划线、$、# 等③ 变量长度范围:1~30④ 不区分大小

0评论2023-02-07703

mysql动态执行sql批量删除数据 sqlserver批量删除数据
 CREATE PROCEDURE `sp_delete_pushmsg_data`() BEGINdeclare l_delete_date varchar(16);declare l_state_datevarchar(16);declare l_dutynoint;declare l_row_cnt int DEFAULT 0;declare rnint default 0;declare i int default 0;set l_dutyno=101;set l_

0评论2023-02-07801

[DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase]
2016-03-24 16:39:35.687http-8080-1[INFO ][org.springframework.jdbc.support.SQLErrorCodesFactory] SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase]2016-03-24 16:39:35.687http-8080-1[DEBUG][org.

0评论2023-02-07529

配置ogg异构oracle-mysql(3)目的端配置 oracle ogg mysql
目的端配置大致分为如下三个步骤:配置mgr,配置checkpoint table,配置应用进程在目的端先创建一张表,记得带主键:mysql create database hr;Query OK, 1 row affected (0.00 sec)mysql use hrDatabase changedmysql create table ah4(id int ,name varchar

0评论2023-02-07963

MySQL客户端工具的使用与MySQL SQL语句
MySQL客户端工具的使用1、MySQL程序的组成客户端mysql:CLI交互式客户端程序mycli:CLI交互式客户端程序;使用sql语句时会有提示信息mysql_secure_installation:安全初始化,强烈建议安装完以后执行此命令mysqldump:mysql备份工具mysqladmin:官方提供的shell

0评论2023-02-07799

MySQL 5.7之关于SQL_MODE的设置
目录一、sql_mode用来解决下面几类问题二、MySQL5.7中sql_mode参数默认值的说明(如下为MySQL 5.7.27版本)三、sql_mode 设置和修改总结sql_mode是个容易被忽视的变量,在5.5默认值是空值,在这种设置下是可以允许一些非法操作的,比如允许一些非法数据的插入

0评论2023-02-07623

IIS7配置PHP5.5 对找不到的文件启用文件监视的解决方法 原创
本文主要介绍IIS7配置PHP5.5 对找不到的文件启用文件监视的解决方法,比较实用,希望能给大家做一个参考。

0评论2016-06-26728

更多推荐