火花API
回到术语表什么是弹性分布式数据集?
RDD或弹性分布式数据集,是分布式计算记录的集合,具有容错性,本质上是不可变的。它们可以与低级api并行操作,而它们的惰性特性使spark操作以更高的速度工作。rdd支持两种类型的操作:- 转换——返回另一个RDD的惰性操作,除非对该RDD执行操作,否则该RDD不计算。转换的一些例子是map(), flatmap(), filter()
- 动作——触发计算和返回值的操作。一些操作的例子是count, top(), savetofile()
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文件中读取。
数据集的缺点
数据集的主要缺点是它们需要类型转换为字符串。额外的资源
回到术语表