Python大数据之PySpark

这篇具有很好参考价值的文章主要介绍了Python大数据之PySpark。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。



1、Spark与PySpark


Apache Spark是一种用于大规模数据处理的多语言分布式引擎,用于在单节点机器或集群上执行数据工程、数据科学和机器学习

Spark官网:https://spark.apache.org/

按照官网描述,Spark关键特征包括:

  • 批/流处理

    Spark支持您使用喜欢的语言:Python、SQL、Scala、Java或R,统一批量和实时流处理数据

  • SQL分析

    执行快速、分布式ANSI SQL查询以进行BI仪表板和临时报告。运行速度比大多数数据仓库更快

  • 大规模数据科学

    对PB级数据执行探索性数据分析(EDA),而无需采用降采样(缩减采样)

  • 机器学习

    在笔记本电脑上训练机器学习算法,并使用相同的代码扩展到数千台机器的容错集群

Apache Spark与多种框架集成,有助于将其扩展到数千台机器:

Python大数据之PySpark,# Python,# Spark,# 数据分析,spark,python,大数据

Apache Spark支持的存储和基础设施有:

Python大数据之PySpark,# Python,# Spark,# 数据分析,spark,python,大数据

根据Spark官网,Spark支持Python语言编程

PySpark是Spark为Python开发者提供的API。它不仅允许您使用Python API编写Spark应用程序,还提供PySpark shell用于在分布式环境中交互式分析数据。PySpark支持Spark的大部分功能,例如Spark Core、Spark SQL、Spark Streaming、Spark MLlib

Python大数据之PySpark,# Python,# Spark,# 数据分析,spark,python,大数据

  • Spark Core是Spark平台的底层通用执行引擎,所有其他功能都构建在其之上。它提供了RDD(弹性分布式数据集)和内存计算能力

  • Spark SQL和DataFrame是用于结构化数据处理的Spark模块。它提供了一个称为DataFrame的编程抽象,也可以充当分布式SQL查询引擎

  • Spark中的流功能运行在Spark之上,支持跨流数据和历史数据的强大交互式和分析应用程序,同时继承了Spark的易用性和容错特性

  • MLlib构建于Spark之上,是一个可扩展的机器学习库,它提供了一组统一的高级API,可帮助用户创建和调整实用的机器学习管道

PySpark依赖于Py4J,Py4J是一个用Python和Java编写的库。通过Py4J,Python程序能够动态访问Java虚拟机中的Java对象,Java程序也能够回调Python对象

PySpark是Spark官方提供的基于Python语言开发的类库,仅支持在本地Local模式环境下供Python用户开发使用

PySpark官网文档:https://spark.apache.org/docs/3.1.2/api/python/getting_started

2、PySpark开发环境搭建


前提:确保已经安装配置了Java和Scala

1)Hadoop的Windows环境配置

由于Hadoop主要基于Linux编写,而Hive、Spark等依赖于Hadoop,因此,Hadoop在Windows上运行需要winutils.exehadoop.dll等环境文件的支持,winutils.exehadoop.dll等文件必须放置在bin目录下,主要用于模拟Linux下的目录环境

官方文档说明:https://cwiki.apache.org/confluence/display/HADOOP2/WindowsProblems

Python大数据之PySpark,# Python,# Spark,# 数据分析,spark,python,大数据

配置Hadoop的Windows环境变量:

HADOOP_HOME=D:\Software\Hadoop\hadoop-2.7.7
Path=%HADOOP_HOME%\bin

hadoop.dllwinutils.exe可不用拷贝)文件拷贝到C:\Windows\System32目录中,重启电脑

PS:各版本hadoop.dllwinutils.exe下载:https://github.com/cdarlint/winutils/tree/master/hadoop-3.1.2

PySpark开发环境搭建常见问题及解决:传送门

2)PySpark环境搭建

在PyCharm终端安装PySpark模块:

pip install pyspark==3.1.2

配置PySpark的Windows环境变量:

PYSPARK_PYTHON=python
PYSPARK_DRIVER_PYTHON=jupyter
PYSPARK_DRIVER_PYTHON_OPTS=lab

如果您未配置PySpark的Windows环境变量,将出现如下报错:

Python大数据之PySpark,# Python,# Spark,# 数据分析,spark,python,大数据

解决:至少确保配置PYSPARK_PYTHON=python该Windows系统环境变量(配置后需要重启PyCharm)

3)PySpark环境验证

Windows+R,输入cmd回车执行如下命令:

spark-shell

Python大数据之PySpark,# Python,# Spark,# 数据分析,spark,python,大数据

成功打印Spark版本说明环境配置成功

3、PySpark的工作机制

Python大数据之PySpark,# Python,# Spark,# 数据分析,spark,python,大数据

Spark的主要组件包括Driver、Executor、Cluster Manager、Task等

其中Driver是客户端任务,Executor负责执行具体Task,用户将Spark任务程序Driver提交给资源管理系统(如Yarn、K8s等),Spark会将程序分解为一个个的Task交给Executor执行

为了不影响现有Spark的运行架构,Spark在外围包装了一层Python的API,借助Py4j实现Python和Java的交互,即通过Py4j将PySpark代码“解析”到JVM中去运行

在Driver端,Python通过Py4j来调用Java方法,将用户使用Python写的程序映射到JVM中,比如,用户在PySpark中实例化一个Python的SparkContext对象,最终会在JVM中实例化Scala的SparkContext对象

在Executor端,都启动一个Python守护进程,当Task收到任务请求后,交给底层的Python进程去执行

Python大数据之PySpark,# Python,# Spark,# 数据分析,spark,python,大数据

4、PySpark批处理


SparkConf是Spark批处理程序的主入口

PySpark批处理使用案例:单词统计文章来源地址https://www.toymoban.com/news/detail-714070.html

from pyspark import SparkContext, SparkConf

conf = SparkConf().setMaster("local[*]").setAppName("WordCount")
sc = SparkContext(conf=conf)
rdd_lines = sc.textFile(r'C:\Users\cc\Desktop\temp\HarryPotter.txt')
rdd_lines.flatMap(lambda line: re.split("\\s+", re.sub("\\W+", " ", line.lower())))\
    .filter(lambda w: w.strip(

到了这里,关于Python大数据之PySpark的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Apache Spark 练习六:使用Spark分析音乐专辑数据

    本章所分析的数据来自于Kaggle公开的、人工合成的音乐专辑发行数据(https://www.kaggle.com/datasets/revilrosa/music-label-dataset)。以下,我们只针对albums.csv文件进行分析。该数据具体包括以下字段: id: the album identifier; artist_id: the artist identifier; album_title: the title of the album; genre: the

    2024年02月15日
    浏览(49)
  • Spark大数据分析与实战笔记(第二章 Spark基础-01)

    宁愿跑起来被拌倒无数次,也不愿规规矩矩走一辈子,就算跌倒也要豪迈的笑。 Spark于2009年诞生于美国加州大学伯克利分校的AMP实验室,它是一个可应用于大规模数据处理的统一分析引擎。Spark不仅计算速度快,而且内置了丰富的API,使得我们能够更加容易编写程序。 Spark下

    2024年02月03日
    浏览(51)
  • Spark大数据分析与实战笔记(第二章 Spark基础-02)

    人生就像赛跑,不在乎你是否第一个到达尽头,而在乎你有没有跑完全程。 Spark于2009年诞生于美国加州大学伯克利分校的AMP实验室,它是一个可应用于大规模数据处理的统一分析引擎。Spark不仅计算速度快,而且内置了丰富的API,使得我们能够更加容易编写程序。 请参考《

    2024年02月03日
    浏览(47)
  • Spark大数据分析与实战笔记(第二章 Spark基础-04)

    “春风十里,不如你。” 这句来自现代作家安妮宝贝的经典句子,它表达了对他人的赞美与崇拜。每个人都有着不同的闪光点和特长,在这个世界上,不必去羡慕别人的光芒,自己所拥有的价值是独一无二的。每个人都有无限的潜力和能力,只要勇敢展现自己,就能在人生舞

    2024年02月03日
    浏览(53)
  • Spark大数据分析与实战笔记(第二章 Spark基础-03)

    又回到了原点,就从现在开始我的新生活吧。 章节概要:Spark运行架构与原理 I. 引言 A. 概述Spark B. Spark的特点和优势 II. Spark运行架构概述 A. Spark集群模式 B. Spark运行模式 C. Spark执行引擎:Spark Core D. Spark计算模块:RDD E. Spark数据抽象模块:DataFrame和Dataset F. Spark资源管理器:

    2024年02月03日
    浏览(36)
  • Spark大数据分析与实战笔记(第二章 Spark基础-05)

    成长是一条必走的路路上我们伤痛在所难免。 在大数据处理和分析领域,Spark被广泛应用于解决海量数据处理和实时计算的挑战。作为一个快速、可扩展且易于使用的分布式计算框架,Spark为开发人员提供了丰富的API和工具来处理和分析大规模数据集。 其中,Spark-Shell是Spar

    2024年02月03日
    浏览(92)
  • 基于Spark的气象数据分析

    研究背景与方案 1.1.研究背景 在大数据时代背景下,各行业数据的规模大幅度增加,数据类别日益复杂,给数据分析工作带来极大挑战。 气象行业和人们 的生活息息相关,随着信息时代的发展,大数据技术的出现为气象数据的发展带来机遇。基于此,本项目使用 Spark 等大

    2024年02月09日
    浏览(40)
  • Python大数据之PySpark(三)使用Python语言开发Spark程序代码

    Spark Standalone的PySpark的搭建----bin/pyspark --master spark://node1:7077 Spark StandaloneHA的搭建—Master的单点故障(node1,node2),zk的leader选举机制,1-2min还原 【scala版本的交互式界面】bin/spark-shell --master xxx 【python版本交互式界面】bin/pyspark --master xxx 【提交任务】bin/spark-submit --master xxxx 【学

    2024年01月17日
    浏览(39)
  • 大数据处理与分析-Spark

    (基于Hadoop的MapReduce的优缺点) MapReduce是一个分布式运算程序的编程框架,是用户开发“基于Hadoop的数据分析应用”的核心框架 MapReduce是一种用于处理大规模数据集的编程模型和计算框架。它将数据处理过程分为两个主要阶段:Map阶段和Reduce阶段。在Map阶段,数据被分割为多

    2024年02月04日
    浏览(35)
  • Spark数据倾斜问题分析和解决

    一、背景 首先需要掌握 Spark DAG、stage、task的相关概念 Spark的job、stage和task的机制论述 - 知乎 task数量和rdd 分区数相关 running task数=executor-core* num-executors (如果running task 没有达到乘积最大,一般是队列资源不足) https://www.cnblogs.com/muyue123/p/14036648.html 二、任务慢的原因分析 找到

    2024年02月03日
    浏览(63)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包