003-90-15【SparkSQL&DF&DS】慈航寺庙山脚下八卦田旁油菜花海深处人家王大爷家女儿用GPT学习DataSet的基本操作

003-90-14【SparkSQL&DF&DS】慈航寺庙山脚下八卦田旁油菜花海深处人家王大爷家女儿用GPT学习DataSet的基本操作

【SparkSQL&DF&DS】Dataset 的创建和使用

  • [【SparkSQL&DF&DS】2,Dataset 的创建和使用](#【SparkSQL&DF&DS】2,Dataset 的创建和使用)
    • [1, 创建](#1, 创建)
    • [2, show](#2, show)
    • [3, map](#3, map)
    • [4, as](#4, as)
    • [5, select](#5, select)
    • [6 filter && show(1)](#6 filter && show(1))

【SparkSQL&DF&DS】2,Dataset 的创建和使用

1, 创建

scala 复制代码
import spark.implicits._
//
// import spark.implicits._ 是一条常见的导入语句,用于在 Spark 中导入隐式转换的相关功能。
// 在 Spark 中,隐式转换是一种机制,它允许您在使用 DataFrame 或 Dataset 时,对其进行一些方便的操作,
// 例如使用 DataFrame 的 .as[T] 方法将其转换为 Dataset,或者使用 Dataset 的 .toDF() 方法将其转换为 DataFrame。
// 通过导入 spark.implicits._,您可以自动应用这些隐式转换,而无需显式地调用相关的转换方法。
//
// 以下是一个示例,展示了如何使用 import spark.implicits._ 导入隐式转换:
// import org.apache.spark.sql.SparkSession
// import spark.implicits._ // 导入隐式转换
// val spark = SparkSession.builder()
//   .appName("Example")
//   .getOrCreate()
// // 创建一个 DataFrame
// val df = spark.read.format("csv").load("path/to/data.csv")
// // 使用隐式转换的功能,将 DataFrame 转换为 Dataset
// val ds = df.as[MyClass]
// // 对 Dataset 执行一些操作
// val filteredDs = ds.filter(_.age > 30)
// // 将 Dataset 转换回 DataFrame
// val newDf = filteredDs.toDF()

// $example on:create_ds$
// Encoders are created for case classes
val caseClassDS : Dataset[Person] = Seq(Person("Andy", 32)).toDS()

2, show

scala 复制代码
caseClassDS.show()
// +----+---+
// |name|age|
// +----+---+
// |Andy| 32|
// +----+---+

3, map

sala 复制代码
// Encoders for most common types are automatically provided by importing spark.implicits._
val primitiveDS = Seq(1, 2, 3).toDS()
primitiveDS.map(_ + 1).collect() // Returns: Array(2, 3, 4)

4, as

scala 复制代码
// DataFrames can be converted to a Dataset by providing a class. Mapping will be done by name
val path = "spark-demo/src/main/resources/people.json"
val peopleDS = spark.read.json(path).as[Person]
peopleDS.show()
// +----+-------+
// | age|   name|
// +----+-------+
// |null|Michael|
// |  30|   Andy|
// |  19| Justin|
// +----+-------+

5, select

scala 复制代码
peopleDS.select("name").show
// +-------+
// |   name|
// +-------+
// |Michael|
// |   Andy|
// | Justin|
// +-------+

6 filter && show(1)

scala 复制代码
peopleDS.filter($"age" > 18).show
// +---+------+
// |age|  name|
// +---+------+
// | 30|  Andy|
// | 19|Justin|
// +---+------+
peopleDS.show(1)
// +----+-------+
// | age|   name|
// +----+-------+
// |null|Michael|
// +----+-------+
// $example off:create_ds$
相关推荐
windfantasy19907 小时前
编程考级体系:覆盖全学段多科目的优势分析
大数据
智者知已应修善业7 小时前
【输入两个数字,判断两数相乘是否等于各自逆序数相乘】2023-10-24
c语言·c++·经验分享·笔记·算法·1024程序员节
集3047 小时前
C++多线程学习笔记
c++·笔记·学习
知南x7 小时前
【正点原子STM32MP157 可信任固件TF-A学习篇】(2) STM32MP1 中的 TF-A
stm32·嵌入式硬件·学习·stm32mp157
YJlio7 小时前
Active Directory 工具学习笔记(10.0):AdExplorer / AdInsight / AdRestore 导读与场景地图
网络·笔记·学习
子夜江寒8 小时前
Python 学习-Day8-执行其他应用程序
python·学习
广东数字化转型8 小时前
工作备注笔记
笔记
超高校级的作者8 小时前
博客摘录「 CentOS7 Fail2ban安装使用」2024年4月15日
笔记
●VON8 小时前
从单机应用到分布式调度:基于 HarmonyOS 构建车-空协同任务引擎
学习·华为·harmonyos·openharmony·开源鸿蒙
万变不离其宗_89 小时前
http学习笔记
笔记·学习