Spark 数据集 - 强类型

Posted

技术标签:

【中文标题】Spark 数据集 - 强类型【英文标题】:Spark Datasets - strong typing 【发布时间】:2017-03-23 06:16:42 【问题描述】:

关于 Spark 数据集,什么是强类型 API 和无类型 API?

Datasets 与 DataFrames 有何相似/不同之处?

【问题讨论】:

谁能回答这个问题。 该链接解释了数据集和数据框之间的区别。 ***.com/questions/31508083/… 【参考方案1】:

Dataframe API 是无类型 API,因为只有在运行时才能知道类型。而数据集 API 是类型化 API,其类型将在编译时已知。

df.select("device").where("signal > 10")      // using untyped APIs   
ds.filter(_.signal > 10).map(_.device)         // using typed APIs

【讨论】:

完美的例子@vignesh-i 如果我错了,请纠正我,但这不是动态类型和静态类型之间的区别吗?强类型意味着您不能对任何类型执行任何操作。例如,您不能将布尔值转换为 int 或添加布尔值和字符串。这是一个解释我在想什么的链接:***.com/questions/2690544/…) 公平地说,没有人真正对强类型和静态类型有一个标准的定义,看起来它已经争论了很长时间:D

以上是关于Spark 数据集 - 强类型的主要内容,如果未能解决你的问题,请参考以下文章

从 Spark 读取 Hive 表作为数据集

创建数据集时 Spark 无法反序列化记录

Spark---Dataset

强类型数据集与弱类型数据集

强类型数据集作为水晶报表的数据源

AutoMapper - 强类型数据集