学习笔记Spark—— Spark SQL应用—— Spark DataSet基础操作

Posted 别呀

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习笔记Spark—— Spark SQL应用—— Spark DataSet基础操作相关的知识,希望对你有一定的参考价值。

三、Spark DataSet基本操作

3.1、DataSet简介

  • DataSet是分布式的数据集合,DataSet提供了强类型支持,也是在RDD的每行数据加了类型约束。
  • DateSet整合了RDD和DataFrame的优点,支持结构化和非结构化数据。
  • DataFrame表示为DataSet[Row],即DataSet的子集。
  • DataSet是面向对象的编程接口,可以通过JVM的对象进行构建DataSet。

3.1.1、DataFrame的缺点

  1. 编译时不能类型转化安全检查,运行时才能确定是否有问题
  2. 对于对象支持不友好,rdd内部数据直接以java对象存储,dataframe内存存储的是row对象而不能是自定义对象

3.1.2、DateSet的优点

  1. DateSet整合了RDD和DataFrame的优点,支持结构化和非结构化数据
  2. 和RDD一样,支持自定义对象存储
  3. 和DataFrame一样,支持结构化数据的sql查询
  4. 采用堆外内存存储,gc友好
  5. 类型转化安全,代码友好

3.2、创建DataSet

  • 从集合创建DataSet
  • 从rdd创建DataSet
  • 从DataFrame创建DataSet

3.2.1、从集合创建DataSet

createDataset[T](data: List[T])


3.2.2、从rdd创建DataSet

createDataset[T](data: RDD[T])


3.2.3、从DataFrame创建DataSet

dataSet=dataFrame.as[强类型]



任务1:读取Hive表中的超市商品销售数据

  • 创建Hive表
  • 导入用户购买数据到Hive表
  • 读取Hive表数据创建DataSet

数据 GoodOrder.csv:

步骤:
① 因为是csv,所以我们先上传到hdfs上

② 打开spark-shell,通过DataFrame方式保存到hive中

hive中查看数据:

③ 读取Hive表数据创建DataSet


3.3、DataSet API

应用示例
(这是一个DataSet)


任务2:统计每件商品的销量

  • 根据商品分组统计商品销量
  • 将统计结果保存到Hive

    hive查看:

以上是关于学习笔记Spark—— Spark SQL应用—— Spark DataSet基础操作的主要内容,如果未能解决你的问题,请参考以下文章

学习笔记Spark—— Spark SQL应用—— Spark DataFrame基础操作

三万字,Spark学习笔记

三万字,Spark学习笔记

Spark基础学习笔记29:Spark SQL内置函数

Spark基础学习笔记23:DataFrame与Dataset

Spark基础学习笔记27:Spark SQL数据源 - Hive表