SparkSql读取外部数据源
1、产生背景
用户需求:方便快速从不同的数据源(json、parquet、rdbms),经过混合处理(json join parquet),再将处理结果以特定的格式(son、Parquet)写回指定的系统(HDFS、S3)上去
Spark SQL 1.2 ==> 外部数据源API
Loading and saving Data is not easy
Parse raw data:text/json/parquet
Convert data format transformation
Datasets stores in various Formats/Systems
2、目标
对于开发人员:是否需要吧代码合并到spark中 ??不需要 —jars
用户:
读:spark.read.format(format)
format
build-in:json parquet jdbc cvs(2+)
package: 外部的 并不是spark内置 https://spark-packages.org/
写:
people.write.format(“parquet”).save(“path")
3、操作Parquet文件数据
加载数据:spark.read.format(“parquet”).load(path)
保存数据:df.write.format(“parquet”).save(path)
spark.read.load(“file:…..json’) 会报错,因为sparksql默认处理的format就是parquet
4、操作Hive表数据
spark.table(tableName)
df.write.saveAsTable(tablename)
spark.sql(“select deptno,count(1) as mount from amp where group by deptno”).filter(“deptno is not null”).write.saveAsTable(“hive_table_1”)
spark.sql(“show tables”).show
spark.table(“hive_table_1”).show
spark.sqlContext.setConf(“spark.sql.shuffle.partitions”,”10")
在生产环境中一定要注意设置spark.sql.shuffle.aprtitions,默认是200
5、操作mysql关系型数据库
操作mysql的数据
//第一种方法
val jdbcDF = spark.read.format(“jdbc”).option(“url”,”jdbc:mysql://localhost:3306/hive”).option(“dbtable”,”hive.TBLS”).option(“user”,”root”).option(“password”,”root’)..option(“driver”,”com.mysql.jdbc.Driver”).load()
jdbcDF.printSchema
jdbcDF.show
jdbc.select(“TBL_ID”,”TBL_NAME”).show
//第二种方法
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”,”hive.TBLS”,connectionProperties)
6、综合使用
外部数据源综合案例
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’)
SparkSql读取外部数据源相关推荐
- hive load data外部表报错_生产SparkSQL如何读写本地外部数据源及排错
https://spark-packages.org/里有很多third-party数据源的package,spark把包加载进来就可以使用了 csv格式在spark2.0版本之后是内置的,2.0之前 ...
- 2021年大数据Spark(二十):Spark Core外部数据源引入
目录 外部数据源 MySQL 数据源 演示代码 HBase 数据源 HBase Sink HBase Source 外部数据源 Spark可以从外部存储系统读取数据,比如RDBMs表中或 ...
- Spark SQL与外部数据源的操作(Spark SQL ——> CSV/JSON/Parquet/hive/mysql)
目录 一.Spark SQL支持的外部数据源 二.Spark SQL -> CSV 2.1 读CSV文件 a.有列名 b.无列名 2.2 写CSV文件 三.Spark SQL -> JSO ...
- Spark SQL之External DataSource外部数据源(二)源代码分析
上周Spark1.2刚公布,周末在家没事,把这个特性给了解一下,顺便分析下源代码,看一看这个特性是怎样设计及实现的. /** Spark SQL源代码分析系列文章*/ (Ps: External Da ...
- 利用Python读取外部数据文件
不论是数据分析,数据可视化,还是数据挖掘,一切的一切全都是以数据作为最基础的元素.利用Python进行数据分析,同样最重要的一步就是如何将数据导入到Python中,然后才可以实现后面的数据分析.数据可 ...
- springbatch读取外部数据到mysql
前言 在上一篇springboot整合springbatch中,我们简单介绍了springbatch的基本概念和一个基础使用demo.我们知道springbatch的强大之处在于其批处理数据时的高效. ...
- 外部数据源 之 Plugin 可插拔的方式整合到Spark中/Spark源码中
一:概念理解 Plugin 可插拔的方式整合到Spark中/Spark源码中 为了在用外部数据源读取文件的时候,本来读取是valui 使他变成一个带schema的df 有具体的信息 外部数据源就是把很 ...
- Spark SQL External DataSource外部数据源操作流程
一:获取文件 官网:https://spark.apache.org/docs/latest/sql-data-sources-load-save-functions.html spark本身 有测试 ...
- Spark SQL操作外部数据源
目录 一.Spark SQL支持的外部数据源 二.Spark SQL -> CSV 2.1 读CSV文件 a.有列名 b.无列名 2.2 写CSV文件 三.Spark SQL -> JSO ...
最新文章
- 如何查询当前表空间下所有实例_详解人大金仓MPP数据库并行查询技术
- mysql重置id排序_列替换法重置MySQL自增长ID排序
- Linux Shell脚本编程基础(11)
- perl python文本处理_awk, python, perl文本处理效率对比(zz)
- 浅议gRPC的数据传输机制和回调机制
- 7搭建zabbix_监控03分布式监控Zabbix
- 如何让fragment刷新界面_快速实现android版抖音主界面的心得
- 所处理的数据在什么地方 有多长 如何定义 如何寻找
- Hive 热门数据分析面试题解析
- php 面试靠快速排序,搞定PHP面试 - 常见排序算法及PHP实现
- OpenCV | 图片与视频的相互转换(C++Python)
- 360Stack裸金属服务器部署实践
- 北交所开市工作准备就绪 定于2021年11月15日开市
- 验证二叉搜索树的golang实现
- LAMP-----2、php-5.3.27编译安装
- ExtJS4.2学习(13)基于表格的扩展插件---rowEditing
- 分享一个嘉立创封装库(内含AD和PADS两种格式)
- 安卓移动办公软件_商用软件的爆发7-2016年移动办公
- Flex布局应用---导航栏实现
- ssm基于微信小程序校园商铺购物商城系统
热门文章
- Mongodb 定时备份和恢复
- docker WARNING: bridge-nf-call-iptables is disabled 处理
- DTCMS,手机网站访问跳转到DTCMS官网解决方法
- 【c++】标准模板库STL入门简介与常见用法
- 【Machine Learning in Action --3】决策树ID3算法
- 视频营销、B2B营销、EDM营销之营销方式大PK
- ubuntu更改用户名密码
- FreeRTOS 临界区总结
- wsl安装配置vscode(亲测有用)
- 计算机网络系统集成策略实现摘要,计算机网络集成策略实现探析