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的互操作_大数据培训相关推荐

  1. Spark SQL编程DataFrame 创建_大数据培训

    DataFrame 创建 在Spark SQL中SparkSession是创建DataFrame和执行SQL的入口,创建DataFrame有三种方式:通过Spark的数据源进行创建:从一个存在的RDD ...

  2. Spark 内存管理内存空间分配_大数据培训

    静态内存管理 在 Spark 最初采用的静态内存管理机制下,存储内存.执行内存和其他内存的大小在 Spark 应用程序运行期间均为固定的,但用户可以应用程序启动前进行配置,堆内内存的分配如图6-2所示 ...

  3. Spark 内存管理堆内和堆外内存规划_大数据培训

    堆内和堆外内存规划 作为一个 JVM 进程,Executor 的内存管理建立在 JVM 的内存管理之上,Spark 对 JVM 的堆内(On-heap)空间进行了更为详细的分配,以充分利用内存.同时, ...

  4. Spark 数据倾斜介绍_大数据培训

    Spark 数据倾斜 Spark中的数据倾斜问题主要指shuffle过程中出现的数据倾斜问题,是由于不同的key对应的数据量不同导致的不同task所处理的数据量不同的问题. 例如,reduce点一共要 ...

  5. Spark 性能常规性能调优广播大变量_大数据培训

    常规性能调优四:广播大变量 默认情况下,task中的算子中如果使用了外部的变量,每个task都会获取一份变量的复本,这就造成了内存的极大消耗.一方面,如果后续对RDD进行持久化,可能就无法将RDD数据 ...

  6. spark内核SortShuffle解析_大数据培训

    普通SortShuffle 在该模式下,数据会先写入一个数据结构,reduceByKey写入Map,一边通过Map局部聚合,一遍写入内存.Join算子写入ArrayList直接写入内存中.然后需要判断 ...

  7. Spark SQL数据通用保存数据_大数据培训

    保存数据 1)write直接保存数据 scala> df.write. csv  jdbc   json  orc   parquet textFile- - 注意:保存数据的相关参数需写到上述 ...

  8. Spark Stage级调度_大数据培训

    Spark Stage级调度 Spark的任务调度是从DAG切割开始,主要是由DAGScheduler来完成.当遇到一个Action操作后就会触发一个Job的计算,并交给DAGScheduler来提交 ...

  9. Spark Streaming概述_大数据培训

    Spark Streaming是什么 Spark Streaming用于流式数据的处理.Spark Streaming支持的数据输入源很多,例如:Kafka.Flume.Twitter.ZeroMQ和 ...

最新文章

  1. 程序员面试题精选100题(20)-最长公共子串[算法]
  2. 2017-2018-1 20155223 实验三 实时系统
  3. 洛谷P4219 大融合(LCT、虚子树)
  4. Java 8:CompletableFuture的权威指南
  5. SRM 212 Div II Level One: YahtzeeScore
  6. 常用商品条形码简介和成员国前缀码
  7. linux dup用法,Linux:dup和dup2文件描述符及函数解析,dupdup2
  8. docker之基础命令相关操作下
  9. php 写入txt换行_php是如何向文件中写入换行
  10. 通过windows的超级终端连接华为交换机
  11. oracle数据库if函数,Oracle NULLIF函数
  12. 2021年电工(技师)考试报名及电工(技师)模拟考试题
  13. 你怎么看:就算老公一毛钱股份都没拿到,在我心里,他依然是最牛逼的创业者...
  14. LINE对话生成器使用教程
  15. 排错的时候不要“想当然”
  16. MongoDB $lookup函数实现两个表的关联查询+筛选+取特定值
  17. Springboot+vue项目零食销售商城
  18. PMP模拟试题与解析(四)
  19. 前端工具webpack-打包优化-第1篇
  20. Android设计模式-12-备忘录模式

热门文章

  1. 游戏夜读 | Scikit-learn的2018自述
  2. ABAP SE78上载图片时注意位图格式
  3. Getting started with Chrome Dev Editor
  4. Java编程基础:学习IO流
  5. 1910:【00NOIP普及组】计算器的改良
  6. 北风:2021年第一天的一篇随想,祝自己生日快乐
  7. 随手记理财靠谱吗?揽获胡润新金融50强及其他多项大奖,奖杯告诉你
  8. 八爪鱼大数据应用技能培训课程开始报名啦!
  9. 单片机实例18——“嘀、嘀、……”报警声(硬件电路图+汇编程序+C语言程序)
  10. 我的世界海洋java_我的世界Java版开发者们畅聊水域更新