DataFrame与DataSet的互操作_大数据培训
DataFrame与DataSet的互操作
1 DataFrame转DataSet
1)创建一个DateFrame
scala> val df = spark.read.json(“examples/src/main/resources/people.json”)
df: org.apache.spark.sql.DataFrame = [age: bigint, name: string]
2)创建一个样例类
scala> case class Person(name: String, age: Long)
defined class Person
3)将DataFrame转化为DataSet
scala> df.as[Person]
res14: org.apache.spark.sql.Dataset[Person] = [age: bigint, name: string]
2 Dataset转DataFrame
1)创建一个样例类
scala> case class Person(name: String, age: Long)
defined class Person
2)创建DataSet
scala> val ds = Seq(Person(“Andy”, 32)).toDS()
ds: org.apache.spark.sql.Dataset[Person] = [name: string, age: bigint]
3)将DataSet转化为DataFrame
scala> val df = ds.toDF
df: org.apache.spark.sql.DataFrame = [name: string, age: bigint]
4)展示
这种方法就是在给出每一列的类型后,使用as方法,转成Dataset,这在数据类型是DataFrame又需要针对各个字段处理时极为方便。在使用一些特殊的操作时,一定要加上 import spark.implicits._ 不然toDF、toDS无法使用。
DataFrame与DataSet的互操作_大数据培训相关推荐
- Spark SQL编程DataFrame 创建_大数据培训
DataFrame 创建 在Spark SQL中SparkSession是创建DataFrame和执行SQL的入口,创建DataFrame有三种方式:通过Spark的数据源进行创建:从一个存在的RDD ...
- Spark 内存管理内存空间分配_大数据培训
静态内存管理 在 Spark 最初采用的静态内存管理机制下,存储内存.执行内存和其他内存的大小在 Spark 应用程序运行期间均为固定的,但用户可以应用程序启动前进行配置,堆内内存的分配如图6-2所示 ...
- Spark 内存管理堆内和堆外内存规划_大数据培训
堆内和堆外内存规划 作为一个 JVM 进程,Executor 的内存管理建立在 JVM 的内存管理之上,Spark 对 JVM 的堆内(On-heap)空间进行了更为详细的分配,以充分利用内存.同时, ...
- Spark 数据倾斜介绍_大数据培训
Spark 数据倾斜 Spark中的数据倾斜问题主要指shuffle过程中出现的数据倾斜问题,是由于不同的key对应的数据量不同导致的不同task所处理的数据量不同的问题. 例如,reduce点一共要 ...
- Spark 性能常规性能调优广播大变量_大数据培训
常规性能调优四:广播大变量 默认情况下,task中的算子中如果使用了外部的变量,每个task都会获取一份变量的复本,这就造成了内存的极大消耗.一方面,如果后续对RDD进行持久化,可能就无法将RDD数据 ...
- spark内核SortShuffle解析_大数据培训
普通SortShuffle 在该模式下,数据会先写入一个数据结构,reduceByKey写入Map,一边通过Map局部聚合,一遍写入内存.Join算子写入ArrayList直接写入内存中.然后需要判断 ...
- Spark SQL数据通用保存数据_大数据培训
保存数据 1)write直接保存数据 scala> df.write. csv jdbc json orc parquet textFile- - 注意:保存数据的相关参数需写到上述 ...
- Spark Stage级调度_大数据培训
Spark Stage级调度 Spark的任务调度是从DAG切割开始,主要是由DAGScheduler来完成.当遇到一个Action操作后就会触发一个Job的计算,并交给DAGScheduler来提交 ...
- Spark Streaming概述_大数据培训
Spark Streaming是什么 Spark Streaming用于流式数据的处理.Spark Streaming支持的数据输入源很多,例如:Kafka.Flume.Twitter.ZeroMQ和 ...
最新文章
- 程序员面试题精选100题(20)-最长公共子串[算法]
- 2017-2018-1 20155223 实验三 实时系统
- 洛谷P4219 大融合(LCT、虚子树)
- Java 8:CompletableFuture的权威指南
- SRM 212 Div II Level One: YahtzeeScore
- 常用商品条形码简介和成员国前缀码
- linux dup用法,Linux:dup和dup2文件描述符及函数解析,dupdup2
- docker之基础命令相关操作下
- php 写入txt换行_php是如何向文件中写入换行
- 通过windows的超级终端连接华为交换机
- oracle数据库if函数,Oracle NULLIF函数
- 2021年电工(技师)考试报名及电工(技师)模拟考试题
- 你怎么看:就算老公一毛钱股份都没拿到,在我心里,他依然是最牛逼的创业者...
- LINE对话生成器使用教程
- 排错的时候不要“想当然”
- MongoDB $lookup函数实现两个表的关联查询+筛选+取特定值
- Springboot+vue项目零食销售商城
- PMP模拟试题与解析(四)
- 前端工具webpack-打包优化-第1篇
- Android设计模式-12-备忘录模式
热门文章
- 游戏夜读 | Scikit-learn的2018自述
- ABAP SE78上载图片时注意位图格式
- Getting started with Chrome Dev Editor
- Java编程基础:学习IO流
- 1910:【00NOIP普及组】计算器的改良
- 北风:2021年第一天的一篇随想,祝自己生日快乐
- 随手记理财靠谱吗?揽获胡润新金融50强及其他多项大奖,奖杯告诉你
- 八爪鱼大数据应用技能培训课程开始报名啦!
- 单片机实例18——“嘀、嘀、……”报警声(硬件电路图+汇编程序+C语言程序)
- 我的世界海洋java_我的世界Java版开发者们畅聊水域更新