Spark 数据源
一、mysql作为数据源
import org.apache.spark.sql.{DataFrame, Dataset, Row, SparkSession}
/**
* mysql作为数据源
*
* schema信息
* root
* |-- uid: integer (nullable = false)
* |-- xueyuan: string (nullable = true)
* |-- number_one: string (nullable = true)
*/
object JdbcSource {
def main(args: Array[String]): Unit = {
//1.sparkSQL 创建sparkSession
val sparkSession: SparkSession = SparkSession.builder().appName("JdbcSource")
.master("local[2]").getOrCreate()
//2.加载数据源
val urlData: DataFrame = sparkSession.read.format("jdbc").options(Map(
"url" -> "jdbc:mysql://localhost:3306/urlcount",
"driver" -> "com.mysql.jdbc.Driver",
"dbtable" -> "url_data",
"user" -> "root",
"password" -> "root"
)).load()
//测试
//urlData.printSchema()
//urlData.show()
//3.过滤数据
val fData: Dataset[Row] = urlData.filter(x => {
//uid>2 如何拿到uid?
x.getAs[Int](0) > 2
})
fData.show()
sparkSession.stop()
}
}
mysql数据:

二、Spark写出数据格式
import org.apache.spark.sql.{DataFrame, Dataset, Row, SparkSession}
object JdbcSource1 {
def main(args: Array[String]): Unit = {
//1.sparkSQL 创建sparkSession
val sparkSession: SparkSession = SparkSession.builder().appName("JdbcSource")
.master("local[2]").getOrCreate()
import sparkSession.implicits._
//2.加载数据源
val urlData: DataFrame = sparkSession.read.format("jdbc").options(Map(
"url" -> "jdbc:mysql://localhost:3306/urlcount",
"driver" -> "com.mysql.jdbc.Driver",
"dbtable" -> "url_data",
"user" -> "root",
"password" -> "root"
)).load()
//3.uid>2
val r = urlData.filter($"uid" > 2)
val rs: DataFrame = r.select($"xueyuan", $"number_one")
//val rs: DataFrame = r.select($"xueyuan")
//写入以text格式
//rs.write.text("e:/saveText")
//写入以json格式
//rs.write.json("e:/saveJson")
//写入以csv格式
rs.write.csv("e:/saveCsv")
//rs.write.parquet("e:/savePar")
rs.show()
sparkSession.stop()
}
}
三、Json作为数据源
import org.apache.spark.sql.{DataFrame, Dataset, Row, SparkSession}
object JsonSource {
def main(args: Array[String]): Unit = {
//1.创建sparkSession
val sparkSession: SparkSession = SparkSession.builder().appName("JsonSource")
.master("local[2]").getOrCreate()
import sparkSession.implicits._
//2.读取json数据源
val jread: DataFrame = sparkSession.read.json("e:/saveJson")
//3.处理数据
val fread: Dataset[Row] = jread.filter($"xueyuan" === "bigdata")
//4.触发action
fread.show()
//5.关闭资源
sparkSession.stop()
}
}
四、Csv作为数据源
import org.apache.spark.sql.{DataFrame, Dataset, Row, SparkSession}
object CsvSource {
def main(args: Array[String]): Unit = {
//1.创建sparkSession
val sparkSession: SparkSession = SparkSession.builder().appName("CsvSource")
.master("local[2]").getOrCreate()
import sparkSession.implicits._
//2.读取csv数据源
val cread: DataFrame = sparkSession.read.csv("e:/saveCsv")
//3.处理数据
val rdf = cread.toDF("id", "xueyuan")
val rs = rdf.filter($"id" <= 3)
//4.触发action
rs.show()
//5.关闭资源
sparkSession.stop()
}
}
Spark 数据源的更多相关文章
- 大数据技术之_19_Spark学习_03_Spark SQL 应用解析 + Spark SQL 概述、解析 、数据源、实战 + 执行 Spark SQL 查询 + JDBC/ODBC 服务器
第1章 Spark SQL 概述1.1 什么是 Spark SQL1.2 RDD vs DataFrames vs DataSet1.2.1 RDD1.2.2 DataFrame1.2.3 DataS ...
- Apache Spark 2.2.0 中文文档 - Spark SQL, DataFrames and Datasets Guide | ApacheCN
Spark SQL, DataFrames and Datasets Guide Overview SQL Datasets and DataFrames 开始入门 起始点: SparkSession ...
- Spark官方1 ---------Spark SQL和DataFrame指南(1.5.0)
概述 Spark SQL是用于结构化数据处理的Spark模块.它提供了一个称为DataFrames的编程抽象,也可以作为分布式SQL查询引擎. Spark SQL也可用于从现有的Hive安装中读取数据 ...
- Spark SQL官网阅读笔记
Spark SQL是Spark中用于结构化数据处理的组件. Spark SQL可以从Hive中读取数据. 执行结果是Dataset/DataFrame. DataFrame是一个分布式数据容器.然而D ...
- 【Spark深入学习 -16】官网学习SparkSQL
----本节内容-------1.概览 1.1 Spark SQL 1.2 DatSets和DataFrame2.动手干活 2.1 契入点:SparkSess ...
- Spark(1.6.1) Sql 编程指南+实战案例分析
首先看看从官网学习后总结的一个思维导图 概述(Overview) Spark SQL是Spark的一个模块,用于结构化数据处理.它提供了一个编程的抽象被称为DataFrames,也可以作为分布式SQL ...
- Spark的MLlib和ML库的区别
机器学习库(MLlib)指南 MLlib是Spark的机器学习(ML)库.其目标是使实际的机器学习可扩展和容易.在高层次上,它提供了如下工具: ML算法:通用学习算法,如分类,回归,聚类和协同过滤 特 ...
- Apache Spark 2.2.0 中文文档
Apache Spark 2.2.0 中文文档 - 快速入门 | ApacheCN Geekhoo 关注 2017.09.20 13:55* 字数 2062 阅读 13评论 0喜欢 1 快速入门 使用 ...
- Hadoop spark mongo复制集
启动hadoop cd /usr/local/hadoop/hadoop $hadoop namenode -format # 启动前格式化namenode $./sbin/start-all.sh ...
随机推荐
- Scala单例对象和伴生对象
1.Scala单例对象 Scala单例对象是十分重要的,没有像在Java一样,有静态类.静态成员.静态方法,但是Scala提供了object对象,这个object对象类似于Java的静态类,它的成员. ...
- Top 20 NuGet packages for captcha
Top 20 NuGet packages for captcha CaptchaMvc.Mvc4 CaptchaMvc will implement your web MVC application ...
- ice服务初探
http://masterkey.iteye.com/blog/182975 http://blog.csdn.net/moxiaomomo/article/details/6773979 http: ...
- Elastic Search 5.4.3 java api 入门
首先介绍一点,es的版本从之前的2.x跳跃到5.x,很多插件要保持一致,不然会产生很多版本不兼容的问题. 首先看一个demo先熟悉一下, 具体代码在git服务器上: https://github.co ...
- android新建的项目界面上没有显示怎么办?
看log也没有说明具体情况? 一翻折腾在清单文件里加了权限就好了!!!
- Visual Studio for Mac离线安装教程
Visual Studio for Mac离线安装教程 可以在线安装,也可以离线安装(本次安装博主使用离线,在线安装失败了) 据说翻个墙就可以,有条件的就翻吧 没条件的我于是选择离线安装………… 离线 ...
- Elasticsearch学习之多种查询方式
1. query string search 搜索全部商品:GET /ecommerce/product/_search took:耗费了几毫秒 timed_out:是否超时,这里是没有 _shard ...
- BZOJ3163&Codevs1886: [Heoi2013]Eden的新背包问题[分治优化dp]
3163: [Heoi2013]Eden的新背包问题 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 428 Solved: 277[Submit][ ...
- centos7和Ubuntu上的关机需要手动关闭电源的问题
author:heandsen chen date: 2018-11-11 20:36:38. # halt 执行后会出现这个问题 解决办法: # init 0 # shutdown -h now ...
- PostgreSQL9.4如何指定数据库schema
在PostgreSQL中数据库可以有多个schema,在程序访问的时候如果不做特殊的设置,默认连接的是名为public的schema. 那么,如何设置能够让程序去访问特定的schema呢?之前在网上找 ...