**知识点4:**介绍了RDD(Resilient Distributed Datasets)的概念。RDD是Spark框架中的核心对象支持,全称为"resilient distributed datasets",中文翻译为"弹性分布式数据集"。这个概念指代了RDD对象的三个特性。从逻辑角度来看,RDD是最大的数据处理单元,通过Spark的API创建。在数据处理流程中,RDD是最大数据处理力度的对象,可以用来处理来自HDFS等数据源的数据。RDD对象的数量不受文件数量或目录层级的影响,只需要根据整体处理逻辑定义一个RDD对象即可。
顺序序号4:RDD-Dataset
**知识点5:**介绍了RDD(Resilient Distributed Datasets)的特性和设计。首先指出RDD是最大数据处理力度的对象,是Spark开发框架的高层抽象设计。尽管不同语言的语法有所差异,但RDD的创建、计算和回收等操作在不同语言上都是相似的。RDD的数据部分被简化地比喻为数组,内部的最小力度是元素(element),它是Spark数据处理的最小单元。这些元素可以是任何类型的数据,包括基本类型和自定义对象。RDD提供了许多方法来对其数据进行计算。需要注意的是,RDD不受Catalyst optimizer自动优化的支持,其计算逻辑需要开发者手动控制。最后,关于RDD与DataFrames和Datasets的关系将在后续部分进行介绍。
顺序序号5:Comparing RDDs to DataFrames and Datasets
**知识点6:**介绍了RDD的数据类型。RDD的最细粒度是元素(element),可以包含任意数量的元素,每个元素都有自己的类型。这些类型可以是基本类型(例如整数、布尔值、双精度浮点数),也可以是序列类型(例如字符串、列表、数组、元组、字典),还可以是用户自定义的类对象。在Spark原生设计中,有两种特殊类型的RDD,分别是pair RDD和double RDD。其中,pair RDD主要用于实现mapreduce操作。
顺序序号6:RDD Data Types
**知识点7:**介绍了RDD的数据来源。大部分情况下,RDD的数据来自文件,可以是文本格式或其他格式。在内存计算过程中,RDD也可以通过其他RDD生成。此外,RDD还可以通过Spark SQL对象如DataFrame转化为RDD对象。在测试时,也可以在内存中生成RDD。
顺序序号7:RDD Data Sources
**知识点8:**详细介绍了如何通过文件创建RDD。首先,开发者需要预先创建一个Spark context对象,通常命名为SC,它是Spark Core API的入口。在使用Spark Shell或其他工具初始化Spark运行时时,会自动创建好Spark context对象。虽然资料上建议使用Spark context,但实际上也可以使用Spark session来调用Spark context的方法。在大多数情况下,RDD的数据格式是文本格式,因此Spark提供了两种专门用于文本格式的方法:textFile和wholeTextFiles。对于其他格式的数据,可以使用newAPIHadoopFile等方法,需要用户自定义序列化方式。
顺序序号8:Creating RDDs from Files