内容简介:学习 Spark 2(八):DataSet 创建
DataSet 是强类型的领域对象集,可以使用函数式(functional)或关系式(relational)操作,以并发的对 DataSet 进行转换。
DataFrame 是泛型为 Row 的 Dataset,即 Dataset[Row]
创建 Dataset
可以通过 spark.createDataFrame
和 spark.createDataset
方法,从 RDD 和 List 显式创建 Dataset
// 定义用户类 case class User(name: String, age: Long) // 汤姆与杰瑞 val tom = new User("Tom", 21) val jerry = new User("Jerry", 18) val users = List(tom, jerry) // 创建 DataSet val ds = spark.createDataset(users)
也可以通过 import spark.implicits._
隐式将 RDD 转换为 Dataset
import spark.implicits._ // 定义用户类 case class User(name: String, age: Long) // 汤姆与杰瑞 val tom = new User("tom", 21) val jerry = new User("jerry", 18) val users = List(tom, jerry) // 创建 RDD val rdd = sc.parallelize(users) // 转换为 Dataset val ds = rdd.toDS
查询 Dataset
可以调用 spark.sql
方法从临时表、 Hive 表或者文件中查询 DataFrame
// 从 Hive 的 dw 数据库中查询 users 表的所有数据 spark.sql("select * from dw.users") spark.table("dw.user") // 两者等价 // 从文本文件中查询数据 spark.sql("select * from parquet.`/data/users/*.parquet`")
读取 Dataset
调用 spark.read
通过 DataFrameReader 读取数据源为 DataFrame 或 Dataset
支持的数据源:
- JDBC
- 文本文件
- CSV
- JSON
- ORC
- Parquet
// 定义用户类 case class User(name: String, age: Long) // 读取 Dataset val ds = spark.read.json("/tmp/users.json").as[User]
或者
// 定义用户类 case class User(name: String, age: Long) // 读取 Dataset val ds = spark.read.format("json").load("/tmp/users.json").as[User]
写入 Dataset
调用 ds.write
通过 DataFrameWriter 将数据持久化
ds.write .mode(SaveMode. Overwrite) .format("parquet") .save("/data/users")
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 学习 Spark 2(二):RDD 创建
- Sphinx源码学习笔记(一):索引创建
- Python学习之路38-动态创建属性
- ECMAScript学习笔记(六)——对象的创建
- 微软收购深度学习初创公司Lobe 以帮助创建深度学习模型
- 使用 seed 命令创建模拟数据(学习笔记)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Agile Web Development with Rails, Third Edition
Sam Ruby、Dave Thomas、David Heinemeier Hansson / Pragmatic Bookshelf / 2009-03-17 / USD 43.95
Rails just keeps on changing. Rails 2, released in 2008, brings hundreds of improvements, including new support for RESTful applications, new generator options, and so on. And, as importantly, we’ve a......一起来看看 《Agile Web Development with Rails, Third Edition》 这本书的介绍吧!