Spark使用Python开发和RDD

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

使用PySpark

配置python环境

在所有节点上按照python3,版本必须是python3.6及以上版本

yum install -y python3

修改所有节点的环境变量

export JAVA_HOME=/usr/local/jdk1.8.0_251
export PYSPARK_PYTHON=python3
export HADOOP_HOME=/bigdata/hadoop-3.2.1
export HADOOP_CONF_DIR=/bigdata/hadoop-3.2.1/etc/hadoop
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin

使用pyspark shell

/bigdata/spark-3.2.3-bin-hadoop3.2/bin/pyspark \
--master spark://node-1.51doit.cn:7077 \
--executor-memory 1g --total-executor-cores 10

在pyspark shell使用python编写wordcount

sc.textFile("hdfs://node-1.51doit.cn:8020/data/wc").flatMap(lambda line: line.split(' ')).map(lambda word: (word, 1)).reduceByKey(lambda a, b: a + b).sortBy(lambda t: t[1], False).saveAsTextFile('hdfs://node-1.51doit.cn:8020/out01')

在pycharm中使用python编写wordcount

from pyspark import SparkConf, SparkContext

if __name__ == '__main__':
    conf = SparkConf().setAppName('WordCount').setMaster('local[*]')
    sc = SparkContext(conf=conf)
    lines = sc.textFile('file:///Users/star/Desktop/data.txt')
    words = lines.flatMap(lambda line: line.split(' '))
    wordAndOne = words.map(lambda word: (word, 1))
    reduced = wordAndOne.reduceByKey(lambda x, y: x + y)
    result = reduced.sortBy(lambda t: t[1], False)
    print(result.collect())

RDD

RDD的全称为Resilient Distributed Dataset,是一个弹性、可复原的分布式数据集,是Spark中最基本的抽象,是一个不可变的、有多个分区的、可以并行计算的集合。RDD中并不装真正要计算的数据,而装的是描述信息,描述以后从哪里读取数据,调用了用什么方法,传入了什么函数,以及依赖关系等。

RDD的特点

• 有一系列连续的分区:分区编号从0开始,分区的数量决定了对应阶段Task的并行度
• 有一个函数作用在每个输入切片上或对应的分区上: 每一个分区都会生成一个Task,对该分区的数据进行计算,这个函数就是具体的计算逻辑
• RDD和RDD之间存在一系列依赖关系:RDD调用Transformation后会生成一个新的RDD,子RDD会记录父RDD的依赖关系,包括宽依赖(有shuffle)和窄依赖(没有shuffle)
• (可选的)K-V的RDD在Shuffle会有分区器,默认使用HashPartitioner
• (可选的)如果从HDFS中读取数据,会有一个最优位置:spark在调度任务之前会读取NameNode的元数据信息,获取数据的位置,移动计算而不是移动数据,这样可以提高计算效率。
Spark使用Python开发和RDD

RDD的算子(方法)分类

• Transformation:即转换算子,调用转换算子会生成一个新的RDD,Transformation是Lazy的,不会触发job执行。

• Action:行动算子,调用行动算子会触发job执行,本质上是调用了sc.runJob方法,该方法从最后一个RDD,根据其依赖关系,从后往前,划分Stage,生成TaskSet。

创建RDD的方法

• 从HDFS指定的目录据创建RDD

val lines: RDD[String] = sc.textFile("hdfs://node-1.51doit.cn:9000/log")

• 通过并行化方式,将Driver端的集合转成RDD文章来源地址https://www.toymoban.com/news/detail-508947.html

 val rdd1: RDD[Int] = sc.parallelize(Array(1,2,3,4,5,6,7,8,9))

查看RDD的分区数量

val rdd1: RDD[Int] = sc.parallelize(Array(1,2,3,4,5,6,7,8,9))
rdd1.partitions.length

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

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

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

相关文章

  • CDH集群离线配置python3环境,并安装pyhive、impyla、pyspark

    背景: 项目需要对数仓千万级数据进行分析、算法建模。因数据安全,数据无法大批量导出,需在集群内进行分析建模,但CDH集群未安装python3 环境,需在无网情况下离线配置python3环境及一系列第三方库。 采取策略,使用外部联网linux环境创建python3虚拟环境,然后整体迁移

    2024年02月11日
    浏览(50)
  • Spark在Windows下的环境搭建及pyspark的使用

        Spark是一个用于大数据处理的开源框架,它是用Scala编写的,而Scala是一种运行在Java虚拟机(JVM)上的编程语言,因此它依赖于Java的运行环境。所以首先需要安装JDK(JavaTM Platform Standard Edition Development Kit),并将环境变量配置好。 可参考我的另一篇博客: 1.下载Spark  

    2024年02月02日
    浏览(36)
  • 在pycharm中使用PySpark第三方包时调用python失败,求教

    python版本是3.12 输入代码: 环境配置如下: path路径配置: 错误代码如下: D:pythonpython.exe \\\"D:python工具python学习工具第二阶段test pyspark.py\\\"  Setting default log level to \\\"WARN\\\". To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel). 3.5.0 24/01/07 16:24:31 ERROR Executor: E

    2024年01月20日
    浏览(53)
  • spark-shell(pyspark)单机模式使用和编写独立应用程序

    spark有四种部署方式:Local,Standalone,Spark on Mesos,Spark on yarn。第一个为单机模式,后三个为集群模式。 spark-shell支持python和scala,这里使用python。 1.启动pyspark环境 在spark安装目录下 进入之后,如下图:  2.编写程序 新建代码文件WordCount.py,并编写程序 运行代码:python3 Wor

    2024年04月14日
    浏览(35)
  • 使用VSCode开发 Python虚拟环境配置说明

    这里给大家介绍下怎么配置VSCode的环境来开发Python。 介绍: VSCode是一款由Microsoft开发的免费、开源的代码编辑器。它具有许多优势,使其成为许多开发者喜爱的工具之一。以下是一些VSCode的主要优势: 轻量且快速启动: VSCode是一款轻量级的编辑器,启动速度很快,使开发者

    2024年01月23日
    浏览(60)
  • 使用IntelliJ IDEA进行Python开发配置

    使用IntelliJ IDEA进行Python开发配置 IntelliJ IDEA是一款功能强大的集成开发环境(IDE),提供了丰富的功能和工具,可用于开发各种编程语言,包括Python。本文将介绍如何在IntelliJ IDEA中配置Python开发环境,并提供相应的源代码示例。 以下是配置Python开发环境的步骤: 步骤1:安装

    2024年02月06日
    浏览(50)
  • 使用Pycharm运行spark实例时没有pyspark包(ModuleNotFoundError: No module named ‘py4j‘)

    在安装并配置pyspark,下载并打开Pycharm(专业版)后进行spark实例操作(笔者以统计文件中的行数为例)时,运行程序后提示ModuleNotFoundError: No module named \\\'py4j\\\': 1.下载py4j包后下载pyspark包 打开新终端,在终端中输入(若在pycharm中进行下载可能导致下载失败,这里指定使用清华

    2024年04月26日
    浏览(39)
  • 【Python】Python pyspark 教程

    介绍 PySpark是一个基于Python的Apache Spark API,它提供了一种方便的方式来分析大规模数据集。它结合了Python的简洁性和Spark的高性能计算能力,使得处理大数据集变得轻松而高效。本教程将介绍PySpark的基本概念和常用操作,以帮助您更好地了解和使用PySpark。 安装PySpark 要使用

    2024年02月21日
    浏览(38)
  • Python大数据之PySpark(二)PySpark安装

    1-明确PyPi库,Python Package Index 所有的Python包都从这里下载,包括pyspark 2-为什么PySpark逐渐成为主流? http://spark.apache.org/releases/spark-release-3-0-0.html Python is now the most widely used language on Spark. PySpark has more than 5 million monthly downloads on PyPI, the Python Package Index. 记住如果安装特定的版本

    2024年02月04日
    浏览(43)
  • 【Python】PySpark

    前言 Apache Spark是用于大规模数据(large-scala data)处理的统一(unified)分析引擎。 简单来说,Spark是一款分布式的计算框架,用于调度成百上千的服务器集群,计算TB、PB乃至EB级别的海量数据。 Spark对Python语言的支持,重点体现在Python第三方库:PySpark PySpark是由Spark官方开发

    2024年02月10日
    浏览(32)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包