火花API

回到术语表
如果你正在使用Spark,你会遇到三个api: DataFrames, Datasets和rdd

什么是弹性分布式数据集?

RDD或弹性分布式数据集,是分布式计算记录的集合,具有容错性,本质上是不可变的。它们可以与低级api并行操作,而它们的惰性特性使spark操作以更高的速度工作。rdd支持两种类型的操作:
  • 转换——返回另一个RDD的惰性操作,除非对该RDD执行操作,否则该RDD不计算。转换的一些例子是map(), flatmap(), filter()Spark API: RDD转换
  • 动作——触发计算和返回值的操作。一些操作的例子是count, top(), savetofile()SPARK API: RDD Actions

rdd的缺点

如果您选择使用RDD,则必须优化每个RDD。此外,与Datasets和dataframe不同,rdd不会推断所摄取数据的模式,因此您必须指定它。

什么是数据框架?

DataFrames是命名列下的分布式行集合。简单地说,它看起来像一个带有Column标题的Excel表,或者你可以把它看作是关系数据库中的表或R或Python中的DataFrame。它与RDD有三个主要的共同特征:
  • 本质上是不可改变的:您将能够创建一个数据框架,但不能更改它。DataFrame就像RDD一样可以被转换
  • 懒惰的评估:在执行操作之前,任务不会执行。
  • 分布:数据帧就像rdd一样,本质上都是分布式的。

创建数据帧的方法

在Spark中,数据帧可以通过以下几种方式创建:
  • 使用不同的数据格式。例如从JSON, CSV, RDBMS, XML或Parquet加载数据
  • 从已经存在的RDD加载数据。
  • 以编程方式指定模式

数据框架的缺点

DataFrame API的主要缺点是它不支持安全的编译时,因此,在不知道数据结构的情况下,用户是有限的。

什么是数据集?

数据集是映射到关系模式的对象的强类型、不可变集合。数据集可以使用JVM对象创建,并使用复杂的函数转换进行操作。创建数据集有两种方式:
  • 动态
  • 使用SparkSession从JSON文件中读取。

数据集的缺点

数据集的主要缺点是它们需要类型转换为字符串。

额外的资源


回到术语表