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

PySpark介绍与安装

Spark是什么

定义:Apache Spark是用于大规模数据(large-scala data)处理的统一(unified)分析引擎

 简单来说,Spark是一款分布式的计算框架,用于调度成百上千的服务器集群,计算TB、PB乃至EB级别的海量数据

 Python On Spark

Spark作为全球顶级的分布式计算框架,支持众多的编程语言进行开发。 而Python语言,则是Spark重点支持的方向。

 PySpark

park对Python语言的支持,重点体现在,Python第三方库:PySpark之上。

PySpark是由Spark官方开发的Python语言第三方库。

Python开发者可以使用pip程序快速的安装PySpark并像其它三方库那样直接使用。

 Why PySpark

Python应用场景和就业方向是十分丰富的,其中,最为亮点的方向为:

大数据开发 和 人工智能

总结:

1. 什么是Spark、什么是PySpark

  • Spark是Apache基金会旗下的顶级开源项目,用于对海量数据进行大规模分布式计算。
  • PySpark是Spark的Python实现,是Spark为Python开发者提供的编程入口,用于以Python代码完成Spark任务的开发
  • PySpark不仅可以作为Python第三方库使用,也可以将程序提交的Spark集群环境中,调度大规模集群进行执行。

2. 为什么要学习PySpark?

大数据开发是Python众多就业方向中的明星赛道,薪资高岗位多,Spark(PySpark)又是大数据开发中的核心技术

PySpark库的安装 

同其它的Python第三方库一样,PySpark同样可以使用pip程序进行安装。

在”CMD”命令提示符程序内,输入:

pip install pyspark

或使用国内代理镜像网站(清华大学源)

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyspark

 构建PySpark执行环境入口对象

想要使用PySpark库完成数据处理,首先需要构建一个执行环境入口对象。

PySpark的执行环境入口对象是:类 SparkContext 的类对象

"""
演示pyspark
"""
# 导包
from pyspark import SparkConf, SparkContext# 创建SparkConf类对象
# 链式调用
conf = SparkConf().\setMaster("local[*]").\setAppName("test_spark_app")
# .setMaster设置运行模式
# .setAppName设置程序的名称
# 可以写成这样
# conf = SparkConf()
# conf.setMaster("local[*]")
# conf.setAppName("test_spark_app")# 基于SparkConf类对象创建SparkContext类对象
sc = SparkContext(conf=conf)
# 打印PySpark类对象
print(sc.version)
# 停止SparkContext对象的运行(停止PySpark程序)
sc.stop()

PySpark的编程模型

SparkContext类对象,是PySpark编程中一切功能的入口。

PySpark的编程,主要分为如下三大步骤:

 

  •  通过SparkContext对象,完成数据输入
  • 输入数据后得到RDD对象,对RDD对象进行迭代计算
  • 最终通过RDD对象的成员方法,完成数据输出工作

总结:

1. 如何安装PySpark库

        pip install pyspark

2. 为什么要构建SparkContext对象作为执行入口

        PySpark的功能都是从SparkContext对象作为开始

3. PySpark的编程模型是?

  • 数据输入:通过SparkContext完成数据读取
  • 数据计算:读取到的数据转换为RDD对象,调用RDD的成员方法完成计算
  • 数据输出:调用RDD的数据输出相关成员方法,将结果输出到list、元组、字典、文本文件、数据库等
http://www.lryc.cn/news/103853.html

相关文章:

  • 细讲TCP三次握手四次挥手(三)
  • vue 组件中 data 为什么必须是函数
  • 从零开始学python(十二)如何成为一名优秀的爬虫工程师
  • 为高性能计算构建,由亚马逊云科技Amazon Graviton3E驱动的最新实例正式可用
  • BUUCTF题目Crypto部分wp(持续更新)
  • A Generalized Loss Function for Crowd Counting and Localization阅读笔记
  • SocketD协议单链接双向RPC模式怎么实现
  • apache poi 设置背景颜色
  • Vue2-Vue3组件间通信-EventBus方式-函数封装
  • 【SpringBoot】| SpringBoot 和 web组件
  • dflow工作流使用1——架构和基本概念
  • python小游戏课程设计报告,python游戏课程设计报告
  • 使用Windbg分析从系统应用程序日志中找到的系统自动生成的dump文件去排查问题
  • 后端技术趋势指南|如何选择自己的技术方向
  • Delphi XE的原生JSONObject如何判断键值是否存在?
  • Go Runtime功能初探
  • 01|Oracle学习(监听程序、管理工具、PL/SQL Developer、本地网络服务介绍)
  • 滴滴数据服务体系建设实践
  • VBA技术资料MF36:VBA_在Excel中排序
  • Shell脚本学习3
  • 代理模式--静态代理和动态代理
  • C++容器——list的模拟实现
  • VUE3 祖孙组件传值调用方法
  • 我的网安之路
  • langchain-ChatGLM源码阅读:webui.py
  • <C++>二、 类和对象
  • 【HttpRunnerManager】搭建接口自动化测试平台实战
  • 【adb】adb常用命令
  • SAP 委外副产品业务
  • 高并发编程-2. 并发级别