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$
相关推荐
听风ツ36 分钟前
固高运动控制
学习
西岭千秋雪_44 分钟前
Redis缓存架构实战
java·redis·笔记·学习·缓存·架构
XvnNing1 小时前
【Verilog硬件语言学习笔记4】FPGA串口通信
笔记·学习·fpga开发
海棠蚀omo1 小时前
C++笔记-位图和布隆过滤器
开发语言·c++·笔记
大胡子大叔1 小时前
webrtc-streamer视频流播放(rstp协议h264笔记)
笔记·webrtc·rtsp·webrtc-streamer
FF-Studio2 小时前
【硬核数学】3. AI如何应对不确定性?概率论为模型注入“灵魂”《从零构建机器学习、深度学习到LLM的数学认知》
大数据·人工智能·深度学习·机器学习·数学建模·自然语言处理·概率论
The_cute_cat2 小时前
JavaScript的初步学习
开发语言·javascript·学习
前端小盆友2 小时前
从零实现一个GPT 【React + Express】--- 【2】实现对话流和停止生成
前端·gpt·react.js
山野万里__3 小时前
C++与Java内存共享技术:跨平台与跨语言实现指南
android·java·c++·笔记
百度Geek说3 小时前
搜索数据建设系列之数据架构重构
数据仓库·重构·架构·spark·dubbo