Spark入门(Python)

目录

一、安装Spark

二、Spark基本操作


一、安装Spark

bash 复制代码
pip3 install pyspark

二、Spark基本操作

python 复制代码
# 导入spark的SparkContext,SparkConf模块
from pyspark import SparkContext, SparkConf
# 导入os模块
import os
# 设置PYSPARK的python环境
os.environ['PYSPARK_PYTHON'] = "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python310\\python.exe"

# 构建SparkConf()设置AppName和Master
conf = SparkConf().setAppName("myapp").setMaster("local")
# 构建入口对象SparkContext对象sc
sc = SparkContext(conf=conf)

# 定义列表对象
list1 = [1, 2, 3, 4, 5]
# 构建list对象的RDD对象
rdd1 = sc.parallelize(list1)
print(rdd1.collect())

# 定义元祖tuple对象
tuple1 = (1, 2, 3, 4, 5)
# 构建tuple对象的RDD对象
rdd2 = sc.parallelize(tuple1)
print(rdd2.collect())

# 定义字典对象
dict1 = {'a': 1, 'b': 2, 'c': 3}
# 构建dict对象的RDD对象
rdd3 = sc.parallelize(dict1)
print(rdd3.collect())

# 定义集合对象
set1 = {1, 2, 3, 4, 5}
# 构建集合对象的RDD对象
rdd4 = sc.parallelize(set1)
print(rdd4.collect())

# 定义字符串对象
string1 = "Hello, World!"
# 构建字符串对象的RDD对象
rdd5 = sc.parallelize(string1)
print(rdd5.collect())

# 通过textFile方法构建RDD对象
# data.txt文件内容如下:
# python java python python java
# java python C pascal java
# C java python pascal basic
# basic C java python python
# C C java basic java
rdd6 = sc.textFile('./data.txt')
print(rdd6.collect())

# 使用flatMap算子将rdd6中的元素进行解构拆分
rdd7 = rdd6.flatMap(lambda x: x.split(' '))
print(rdd7.collect())

# 使用map算子将rdd7中的元素进行结构转换
# 构造成(x,1)的元祖
rdd8 = rdd7.map(lambda x:(x,1))
print(rdd8.collect())

# 使用reduceByKey算子对rdd8中的元素进行聚合
rdd9 = rdd8.reduceByKey(lambda x,y:x+y)
print(rdd9.collect())

# 使用sortBy算子对rdd9中的元素进行排序
rdd10 = rdd9.sortBy(lambda x:x[1],ascending=False,numPartitions=1)
print(rdd10.collect())

# 使用filter算子对rdd10中的元素进行过滤
rdd11 = rdd10.filter(lambda x:x[0] == 'java')
print(rdd11.collect())


# def add(x):
#     return x + 1
#
# rdd = rdd1.map(add).map(lambda x: x * 10)
#
# print(rdd.collect())

# rdd = sc.parallelize(['a', 'b', 'd', 'd'])
#
# rdd2 = rdd.map(lambda x:(x,1))
#
# print(rdd2.collect())
#
# rdd3 = rdd2.reduceByKey(lambda x,y:x+y)
#
# print(rdd3.collect())
#
# rdd4 = rdd2.countByKey()
#
# print(rdd4)

sc.stop()
相关推荐
踏着七彩祥云的小丑4 小时前
pytest——Mark标记
开发语言·python·pytest
不爱吃炸鸡柳5 小时前
Python入门第一课:零基础认识Python + 环境搭建 + 基础语法精讲
开发语言·python
Dxy12393102165 小时前
Python基于BERT的上下文纠错详解
开发语言·python·bert
SiYuanFeng7 小时前
Colab复现 NanoChat:从 Tokenizer(CPU)、Base Train(CPU) 到 SFT(GPU) 的完整踩坑实录
python·colab
炸炸鱼.7 小时前
Python 操作 MySQL 数据库
android·数据库·python·adb
_深海凉_8 小时前
LeetCode热题100-颜色分类
python·算法·leetcode
AC赳赳老秦8 小时前
OpenClaw email技能:批量发送邮件、自动回复,高效处理工作邮件
运维·人工智能·python·django·自动化·deepseek·openclaw
zhaoshuzhaoshu9 小时前
Python 语法之数据结构详细解析
python
AI问答工程师9 小时前
Meta Muse Spark 的"思维压缩"到底是什么?我用 Python 复现了核心思路(附代码)
人工智能·python
zfan52010 小时前
python对Excel数据处理(1)
python·excel·pandas