当前位置: 首页 > article >正文

Spark入门(Python)

目录

一、安装Spark

二、Spark基本操作


一、安装Spark

pip3 install pyspark

二、Spark基本操作

# 导入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()


http://www.kler.cn/a/522616.html

相关文章:

  • 设计模式-建造者模式、原型模式
  • 低代码产品表单渲染架构
  • Java面试题2025-并发编程进阶(线程池和并发容器类)
  • C++二叉树进阶
  • 下载arm架构的deb包的方法
  • 三星手机人脸识别解锁需要点击一下电源键,能够不用点击直接解锁吗
  • python基础语法(4) ----- 学习笔记分享
  • 基于SpringBoot的网上摄影工作室开发与实现 | 含论文、任务书、选题表
  • 【JavaSE】String类常用字符串方法总结
  • Django-Admin WebView 集成项目技术规范文档 v2.1
  • 【2024年华为OD机试】 (C卷,100分)- 用户调度问题(JavaScriptJava PythonC/C++)
  • games101-(2)线性代数
  • LosslessScaling-学习版[steam价值30元的游戏无损放大/补帧工具]
  • Unexpected WSL error Error code: Wsl/Service/0x8007273的解决
  • 【creo】CREO配置快捷键方式和默认单位
  • DataWhale组队学习 fun-transformer task5
  • 游戏引擎介绍:Game Engine
  • 多维度详细比较 kratos、go-zero、goframe、sponge 框架
  • python3+TensorFlow 2.x 基础学习(一)
  • 在无sudo权限Linux上安装 Ollama 并使用 DeepSeek-R1 模型
  • MongoDB的读写分离技术方案
  • php:代码中怎么搭建一个类似linux系统的crontab服务
  • CICD集合(五):Jenkins+Git+Allure实战(自动化测试)
  • 【elasticsearch】tasks 查看任务
  • hadoop==docker desktop搭建hadoop
  • 【Pytest】生成html报告中,中文乱码问题解决方案