【Spark】PySpark的RDD与DataFrame的转换与使用

本文详细介绍了PySpark中的RDD和DataFrame的使用,包括SparkSession的创建、RDD的创建与操作、DataFrame的生成和常用API,以及两者之间的转换。重点讲解了RDD的transformations和actions算子,如map、flatMap、reduce、reduceByKey等,以及DataFrame的生成和withColumn方法。
摘要由CSDN通过智能技术生成

RDD

1. SparkSession

使用Spark核心API的应用以SparkContext对象作为程序主入口,而Spark SQL应用则以SparkSession对象作为程序主入口,在Spark2.0发布之前,Spark SQL应用使用的专用主入口是SQLContext和HiveContext。SparkSession把它们封装为一个简洁而统一的入口。

SparkSession 与 SparkContext 初始化:

from pyspark.sql import SparkSession
spark = SparkSession.builder.master("local").appNmae("example").getorCreate()
sc = spark.sparkContext

2. RDD

RDD为弹性分布式数据集。RDD是Spark的基本数据对象,无论是最初加载的数据集,还是中间运算结果的数据集,还是最终的结果数据集,都是RDD。
大多数Spark对从外部加载数据到RDD,然后对已有的RDD进行操作生成新的RDD,这些操作是转化操作,最终输出操作为止,这种操作是行动操作

弹性:RDD是有弹性的,如果某个RDD丢失了,Spark可以通过记录的RDD谱系重新建立。
分布式:RDD是分布式的,RDD中的数据至少被分到一个区中,在集群上跨工作节点的保存在内存中。
数据集:RDD是由记录组成的数据集。记录是数据集中可以唯一区分的数据的集合。

常见的RDD基础操作属性函数如下表所示:
在这里插入图片描述

2.1 创建RDD

文件系统 URL结构
本地文件系统 file:///本地文件路径
HDFS hdfs:///hdfs路径
Amazon S3* s3://bucket/path

2.1.1 读取文本文件

from pyspark.sql import SparkSession
spark = SparkSession.builder.master("local").appName("test").getOrCreate()
sc=spark.sparkContext
# 读取整个目录下的内容
logs = sc.textFile("hdfs:///user/data/")
# 读取单个文件
logs = sc.textFile("hdfs:///user/data/Log_Partition_001.txt/")
# 使用通配符读取文件
logs = sc.textFile("hdfs:///user/data/*_001.txt")
# 把整个目录的内容加载为键值对
logs = sc.textFile("hdfs:///user/data/")
spark.stop()

2.1.2 通过parallelize和range

from pyspark.sql import SparkSession 
spark = sparkSession.builder.master("local").appName("test").getOrCreate()
sc = spark.sparkContext

# 通过parallelize
rdd = sc.parallelize(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值