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读取外部数据源相关推荐

  1. hive load data外部表报错_生产SparkSQL如何读写本地外部数据源及排错

    https://spark-packages.org/里有很多third-party数据源的package,spark把包加载进来就可以使用了 csv格式在spark2.0版本之后是内置的,2.0之前 ...

  2. 2021年大数据Spark(二十):Spark Core外部数据源引入

    目录 外部数据源 MySQL 数据源 演示代码 HBase 数据源 HBase Sink ​​​​​​​HBase Source 外部数据源 Spark可以从外部存储系统读取数据,比如RDBMs表中或 ...

  3. 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 ...

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

    上周Spark1.2刚公布,周末在家没事,把这个特性给了解一下,顺便分析下源代码,看一看这个特性是怎样设计及实现的. /** Spark SQL源代码分析系列文章*/ (Ps: External Da ...

  5. 利用Python读取外部数据文件

    不论是数据分析,数据可视化,还是数据挖掘,一切的一切全都是以数据作为最基础的元素.利用Python进行数据分析,同样最重要的一步就是如何将数据导入到Python中,然后才可以实现后面的数据分析.数据可 ...

  6. springbatch读取外部数据到mysql

    前言 在上一篇springboot整合springbatch中,我们简单介绍了springbatch的基本概念和一个基础使用demo.我们知道springbatch的强大之处在于其批处理数据时的高效. ...

  7. 外部数据源 之 Plugin 可插拔的方式整合到Spark中/Spark源码中

    一:概念理解 Plugin 可插拔的方式整合到Spark中/Spark源码中 为了在用外部数据源读取文件的时候,本来读取是valui 使他变成一个带schema的df 有具体的信息 外部数据源就是把很 ...

  8. Spark SQL External DataSource外部数据源操作流程

    一:获取文件 官网:https://spark.apache.org/docs/latest/sql-data-sources-load-save-functions.html spark本身 有测试 ...

  9. Spark SQL操作外部数据源

    目录 一.Spark SQL支持的外部数据源 二.Spark SQL -> CSV 2.1 读CSV文件 a.有列名 b.无列名 2.2 写CSV文件 三.Spark SQL -> JSO ...

最新文章

  1. 如何查询当前表空间下所有实例_详解人大金仓MPP数据库并行查询技术
  2. mysql重置id排序_列替换法重置MySQL自增长ID排序
  3. Linux Shell脚本编程基础(11)
  4. perl python文本处理_awk, python, perl文本处理效率对比(zz)
  5. 浅议gRPC的数据传输机制和回调机制
  6. 7搭建zabbix_监控03分布式监控Zabbix
  7. 如何让fragment刷新界面_快速实现android版抖音主界面的心得
  8. 所处理的数据在什么地方 有多长 如何定义 如何寻找
  9. Hive 热门数据分析面试题解析
  10. php 面试靠快速排序,搞定PHP面试 - 常见排序算法及PHP实现
  11. OpenCV | 图片与视频的相互转换(C++Python)
  12. 360Stack裸金属服务器部署实践
  13. 北交所开市工作准备就绪 定于2021年11月15日开市
  14. 验证二叉搜索树的golang实现
  15. LAMP-----2、php-5.3.27编译安装
  16. ExtJS4.2学习(13)基于表格的扩展插件---rowEditing
  17. 分享一个嘉立创封装库(内含AD和PADS两种格式)
  18. 安卓移动办公软件_商用软件的爆发7-2016年移动办公
  19. Flex布局应用---导航栏实现
  20. ssm基于微信小程序校园商铺购物商城系统

热门文章

  1. Mongodb 定时备份和恢复
  2. docker WARNING: bridge-nf-call-iptables is disabled 处理
  3. DTCMS,手机网站访问跳转到DTCMS官网解决方法
  4. 【c++】标准模板库STL入门简介与常见用法
  5. 【Machine Learning in Action --3】决策树ID3算法
  6. 视频营销、B2B营销、EDM营销之营销方式大PK
  7. ubuntu更改用户名密码
  8. FreeRTOS 临界区总结
  9. wsl安装配置vscode(亲测有用)
  10. 计算机网络系统集成策略实现摘要,计算机网络集成策略实现探析