-
Dataset 和 DataFrame 的区别
-
DataFrame 就是 Dataset
根据前面的内容, 可以得到如下信息
- Dataset 中可以使用列来访问数据, DataFrame 也可以
- Dataset 的执行是优化的, DataFrame 也是
- Dataset 具有命令式 API, 同时也可以使用 SQL 来访问, DataFrame 也可以使用这两种不同的方式访问
所以这件事就比较蹊跷了, 两个这么相近的东西为什么会同时出现在 SparkSQL 中呢?
确实, 这两个组件是同一个东西, DataFrame 是 Dataset 的一种特殊情况, 也就是说 DataFrame 是 Dataset[Row] 的别名
-
DataFrame 和 Dataset 所表达的语义不同
- 第一点: DataFrame 表达的含义是一个支持函数式操作的 表, 而 Dataset 表达是是一个类似 RDD 的东西, Dataset 可以处理任何对象
- 第二点: DataFrame 中所存放的是 Row 对象, 而 Dataset 中可以存放任何类型的对象
@Test def dataframe3():Unit = { val spark = SparkSession.builder() .master("local[6]") .appName("dataframe3") .getOrCreate() import spark.implicits._ val personList = Seq(Person("zhangsan", 15), Person("lisi", 20)) // DataFrame 是弱类型的 val df:DataFrame = personList.toDF() // Dataset 是强类型 val ds:Dataset[Person] = personList.toDS() } case class Person(name: String, age
-
Dataset和DataFrame的区别
最新推荐文章于 2025-02-28 17:38:48 发布