赞
踩
Spark RDD: RDD代表弹性分布式数据集。它是记录的只读分区集合。 RDD是Spark的基本数据结构。它允许程序员以容错方式在大型集群上执行内存计算。
Spark Dataframe: 与RDD不同,数据以列的形式组织起来,类似于关系数据库中的表。它是一个不可变的分布式数据集合。 Spark中的DataFrame允许开发人员将数据结构(类型)加到分布式数据集合上,从而实现更高级别的抽象,DataFrame 与 RDD 的主要区别在于,前者带有 schema 元信息,即 DataFrame 所表示的二维表数据集的每一列都带有名称和类型。。
Spark Dataset: Apache Spark中的Dataset是DataFrame API的扩展,它提供了类型安全(type-safe),面向对象(object-oriented)的编程接口。 Dataset利用Catalyst optimizer可以让用户通过类似于sql的表达式对数据进行查询。DataSet在DataFrame基础上支持更强的数据类型控制,更精细化操作数据,避免因数据类型异常,造成的程序运行异常。
DataSet是Spark1.6添加的分布式数据集合,Spark2.0合并DataSet和DataFrame数据集合API,DataFrame变成DataSet的子集。
DataSet继承RDD优点,并使用Spark SQL优化的执行引擎。支持JVM对象构建,支持函数式转换(map/flatmap/filter)等多种操作
在PySpark中,可以使用以下方式创建RDD:
从内存、外部存储系统和转换操作(转换算子)三种方式创建RDD的方法。需要注意的是,创建RDD需要先创建SparkContext对象,以便与Spark集群进行通信。
from pyspark import SparkContext
sc = SparkContext("local", "RDD Creation Example")
# 创建一个包含1到10整数的列表
data = range(1, 11)
# 将列表转换为RDD
rdd = sc.parallelize(data)
# 输出RDD的元素
print(rdd.collect())
from pyspark import SparkContext
sc = SparkContext("local", "RDD Creation Example")
# 从本地文件系统中读取数据,创建RDD
rdd = sc.textFile("file:///path/to/file.txt")
# 输出RDD的元素
print(rdd.collect())
from pyspark import SparkContext
sc = SparkContext("local", "RDD Creation Example")
# 创建一个包含1到10整数的列表
data = range(1, 11)
# 将列表转换为RDD
rdd1 = sc.parallelize(data)
# 将rdd1中的元素乘以2,创建新的RDD
rdd2 = rdd1.map(lambda x: x * 2)
# 输出新的RDD的元素
print(rdd2.collect())
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。