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$
相关推荐
青云交9 分钟前
Java 大视界 -- Java 大数据在智能家居场景联动与用户行为模式挖掘中的应用
java·大数据·智能家居·边缘计算·户型适配·行为挖掘·场景联动
shinelord明17 分钟前
【数据行业发展】可信数据空间~数据价值的新型基础设施
大数据·架构·云计算·创业创新
PigeonGuan25 分钟前
C盘扩容笔记
笔记
健康有益科技40 分钟前
家庭健康智能终端:解锁智能家居时代的健康管理
大数据·软件工程·智能家居·健康医疗
MXsoft6181 小时前
破解多校区高校运维困局,协同效率提升60%的智能运维方案
大数据
shizidushu2 小时前
Hugging Face NLP课程学习记录 - 3. 微调一个预训练模型
人工智能·学习·自然语言处理·微调·huggingface
JasmineX-12 小时前
数据结构——顺序表(c语言笔记)
c语言·开发语言·数据结构·笔记
StarPrayers.2 小时前
PySpark基础知识(python)
python·数据分析·spark
币须赢3 小时前
英伟达Thor芯片套件9月发货 “物理AI”有哪些?
大数据·人工智能
夜流冰3 小时前
工程师 - Onion Architecture in Software Development
笔记