Spark SQL External DataSource简介
随着Spark1.2的发布,Spark SQL开始正式支持外部数据源。这使得Spark SQL支持了更多的类型数据源,如json, parquet, avro, csv格式。只要我们愿意,我们可以开发出任意的外部数据源来连接到Spark SQL。
示例: 存储json数据。
CREATE TEMPORARY TABLE jsonTable
USING org.apache.spark.sql.json
OPTIONS (
path '/path/to/data.json'
) 详细示例:
1. DDL创建外部数据资源表jsonTable
scala> import org.apache.spark.sql.SQLContext
scala> import sqlContext._
//创建jsonTable外部数据源表,并且指定其数数据源文件是people.json这个json文件,同时指定使用org.apache.spark.sql.json该类型的隐式转化类
scala> val jsonDDL = s"""
| |CREATE TEMPORARY TABLE jsonTable
| |USING org.apache.spark.sql.json
| |OPTIONS (
| | path 'file:///Users/shengli/git_repos/spark/examples/src/main/resources/people.json'
| |)""".stripMargin
jsonDDL: String =
"
CREATE TEMPORARY TABLE jsonTable
USING org.apache.spark.sql.json
OPTIONS (
path 'file:///Users/shengli/git_repos/spark/examples/src/main/resources/people.json'
)" scala> sqlContext.sql(jsonDDL).collect() //创建该外部数据源表jsonTable
res0: Array[org.apache.spark.sql.Row] = Array() 2.查看schemaRDD
scala> val jsonSchema = sqlContext.sql(jsonDDL)
ExecutedCommand来取把数据用spark.sql.json的方式从path加载到jsonTable中。 3.查看各阶段执行计划:
scala> sqlContext.sql("select * from jsonTable").queryExecution
4.sql查询:
scala> sqlContext.sql("select * from jsonTable")
5.执行sql:
scala> sqlContext.sql("select * from jsonTable").collect API使用:
scala> sqlContext.jsonFile("file:///Users/shengli/git_repos/spark/examples/src/main/resources/people.json")
scala> json.registerTempTable("jsonFile")
scala> sql("select * from jsonFile").collect()
Spark SQL External DataSource简介的更多相关文章
- Spark SQL External Data Sources JDBC官方实现写测试
通过Spark SQL External Data Sources JDBC实现将RDD的数据写入到MySQL数据库中. jdbc.scala重要API介绍: /** * Save this RDD ...
- Spark SQL External Data Sources JDBC简易实现
在spark1.2版本中最令我期待的功能是External Data Sources,通过该API可以直接将External Data Sources注册成一个临时表,该表可以和已经存在的表等通过sq ...
- Spark SQL External Data Sources JDBC官方实现读测试
在最新的master分支上官方提供了Spark JDBC外部数据源的实现,先尝为快. 通过spark-shell测试: import org.apache.spark.sql.SQLContext v ...
- 【转载】Spark SQL之External DataSource外部数据源
http://blog.csdn.net/oopsoom/article/details/42061077 一.Spark SQL External DataSource简介 随着Spark1.2的发 ...
- [转] Spark sql 内置配置(V2.2)
[From] https://blog.csdn.net/u010990043/article/details/82842995 最近整理了一下spark SQL内置配.加粗配置项是对sparkSQL ...
- 第十一篇:Spark SQL 源码分析之 External DataSource外部数据源
上周Spark1.2刚发布,周末在家没事,把这个特性给了解一下,顺便分析下源码,看一看这个特性是如何设计及实现的. /** Spark SQL源码分析系列文章*/ (Ps: External Data ...
- Spark SQL之External DataSource外部数据源(二)源代码分析
上周Spark1.2刚公布,周末在家没事,把这个特性给了解一下,顺便分析下源代码,看一看这个特性是怎样设计及实现的. /** Spark SQL源代码分析系列文章*/ (Ps: External Da ...
- spark SQL (一)初识 ,简介
一, 简介 Spark SQL是用于结构化数据处理的Spark模块.与基本的Spark RDD API不同,Spark SQL提供的接口为Spark提供了关于数据结构和正在执行的计算的更多信息.在内部 ...
- Spark SQL概念学习系列之Spark SQL的简介(一)
Spark SQL提供在大数据上的SQL查询功能,类似于Shark在整个生态系统的角色,它们可以统称为SQL on Spark. 之前,Shark的查询编译和优化器依赖于Hive,使得Shark不得不 ...
随机推荐
- 简单的新手加法运算(基于Struts2)
软件151 王帅 在搭好框架的前提下,首先编写action.java文件: import com.opensymphony.xwork2.ActionSupport; public class Us ...
- font awesome 页面小图标
font awesome 页面小图标 前段时间做页面,从网上查找资料,发现了一个好用的工具,就是font awesome奥森图标,使用了一下,发现非常方便,而且很灵活,纯css编写,可以和bootst ...
- 201671010142 <<面向对象程序设计(Java) 实验十五 线程 感悟和总结>>
继承Thread类实现多线程 继承Thread类的方法尽管被我列为一种多线程实现方式,但Thread本质上也是实现了Runnable接口的一个实例,它代表一个线程的实例,并且,启动线程的唯一方法就是通 ...
- SSM连接数据库自动生成问题
错误的结果为: 程序里面写的sql语句放在数据库里面去查询能查询到数据,但是程序里面查询时候,返回的结果为null 记录一下 我出现的原因是: 数据库的字段 account_id accoun ...
- SolrCloud7.4(Jetty容器)+mysql oracle 部署与应用
SolrCloud7.4(Jetty容器)搭建 1.Zookeeper搭建 版本:zookeeper-3.4.10.tar.gz 1.把zookeeper安装包上传到服务器 2.zookeeper解压 ...
- c++ <stdarg.h> 解决变参问题的宏定义;
在读程序的过程中遇到的va_list类型不认识,百度得到的.:http://www.cnblogs.com/hanyonglu/archive/2011/05/07/2039916.html (此例子 ...
- (简单)华为Nova3 PAR-AL00的USB调试模式在哪里开启的步骤
当我们使用Pc链接安卓手机的时候,如果手机没有开启Usb调试模式,Pc则没能够成功检测到我们的手机,有时候我们使用的一些功能比较强的的APP如之前我们使用的一个APP引号精灵,老版本就需要开启Usb调 ...
- Python全栈day9习题
本内容主要为If条件语句和while循环的相关知识. 一.使用while循环输入1 2 3 4 5 6 8 9 10 i = 1 while i < 11: if i == 7: pass el ...
- 了解box-sizing 盒子模型
最近看到别人代码有用到box-sizing属性,自己没用过,记录一下 box-sizing:border-box 指定宽度和高度(最小/最大属性)确定元素边框box 理解:假设宽高为100px,设置了 ...
- 【转】Android-Input 键盘设备
https://source.android.com/devices/input/keyboard-devices 键盘设备 Android 支持各种键盘设备,包括特殊功能小键盘(音量和电源控制),紧 ...