windows + anaconda 安装PySpark3.0.1

news2024/12/22 20:31:28

1、背景

        Spark作为分布式内存计算框架,可以广泛应用在数据处理、分析等应用场景。因此,希望借助Spark高性能的处理项目中的数据,搭建此开发环境,深入了解Spark的处理能力与实现机制。

2、开发环境

        在windows10上使用Anaconda作为Python运行与开发环境,搭建PySpark3.0.1的Python开发环境,并执行PI.py和WordCount.py示例程序。

3、下载Spark和Hadoop安装包

        1、前往Spark官网,下载spark-3.0.1-bin-hadoop2.7.tgz安装包

        2、前往Hadoop官网,下载与Spark对应的hadoop-2.7.1.tar.gz安装包

        3、在网上下载winutils.exe工具,windows下使用Hadoop接口需要依赖winutils.exe

4、PySpark环境搭建

        1、安装JDK8

        2、解压spark-3.0.1-bin-hadoop2.7.tgz到安装目录,例如D:\install

        3、解压hadoop-2.7.1.tar.gz到安装目录,例如D:\install

        4、将winutils.exe拷贝到hadoop安装目录下的bin目录中 

        5、在windows环境变量中,设置环境变量:

变量项变量值
HADOOP_HOMED:\install\hadoop-2.7.1
CLASSPATH%HADOOP_HOME%\bin\winutils.exe
SPARK_HOMED:\install\spark-3.0.1-bin-hadoop2.7

        6、打开Anaconda,创建新的环境env_spark,指定Python版本为3.8

        7、在env_spark环境中打开CMD窗口,执行pip install pyspark==3.0.1,指定安装PySpark3.0.1版本。

5、执行PySpark示例程序

        打开Anaconda,打开Spyder(Python代码IDE),分别执行PI.py和WordCount.py示例。

PI.py代码如下:

import sys
from random import random
from operator import add

from pyspark.sql import SparkSession


if __name__ == "__main__":
    """
        Usage: pi [partitions]
    """
    spark = SparkSession\
        .builder\
        .appName("PythonPi")\
        .getOrCreate()

    partitions = int(sys.argv[1]) if len(sys.argv) > 1 else 2
    n = 100000 * partitions

    def f(_: int) -> float:
        x = random() * 2 - 1
        y = random() * 2 - 1
        return 1 if x ** 2 + y ** 2 <= 1 else 0

    count = spark.sparkContext.parallelize(range(1, n + 1), partitions).map(f).reduce(add)
    print("Pi is roughly %f" % (4.0 * count / n))

    spark.stop()

        Spyder中执行结果如下:

        WordCount.py代码如下:

from pyspark.sql import SparkSession
from pyspark import SparkContext

sparksession = SparkSession.builder.appName("SimpleApp").getOrCreate()
sc = sparksession.sparkContext

lines = sc.textFile('D:\install\hadoop-2.7.1\README.txt')
rdd = lines.flatMap(lambda line : line.split(' ')).map(lambda word : (word, 1)).reduceByKey(lambda agg, cur: agg+cur)
print(rdd.collect())
sc.stop()

         WordCount.py执行结果如下:

6、注意事项

        1、安装高版本的PySpark3.3.1后,执行WordCount.py 时报异常org.apache.spark.SparkException: Python worker failed to connect back。因此使用PySpark3.0.1版本。 

        

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/32447.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微信小程序使用github协作

微信小程序github协作所需相关设置 1.点击开发工具右上角的版本管理初识化本地仓库&#xff1a; 2.去github新建一个仓库&#xff0c;复制仓库的ssh的url添加到仓库设置中的远程连接中&#xff1a; 3.在仓库设置中的通用里设置好自己的用户名和邮箱 4.生成ssh key 由于我们使…

web前端网页制作课作业——用DIV+CSS技术设计的家乡旅游主题网站

家乡旅游景点网页作业制作 网页代码运用了DIV盒子的使用方法&#xff0c;如盒子的嵌套、浮动、margin、border、background等属性的使用&#xff0c;外部大盒子设定居中&#xff0c;内部左中右布局&#xff0c;下方横向浮动排列&#xff0c;大学学习的前端知识点和布局方式都有…

Metabase学习教程:视图-3

掌握条形图可视化 创建条形图并使用可视化设置对其进行自定义。 我们看看创建条形图和编辑条形图的设置&#xff0c;然后谈谈堆积条形图。 创建条形图 您可以使用元数据库的示例数据库。选择新的>问题>原始数据>示例数据库。选择示例数据库的Orders表作为您的数据…

腾讯T4级架构师用21个项目带你吃透379页深度学习TensorFlow实践pdf

前言 有人调侃我们说&#xff1a; 程序员不如送外卖。送外卖是搬运食物&#xff0c;自己是搬运代码&#xff0c;都不产出新的东西……透支体力&#xff0c;又消耗健康&#xff0c;可替代性极强&#xff0c;30岁之后就要面临被优化的危险……想跳槽&#xff0c;但是更高的平台…

使用XShell、XFTP连接虚拟机或者服务器教程

文章目录前期准备安装建立连接XFTP部分前期准备 官方网站下载 需要购买&#xff0c;但是我记得我好像是通过邮件发送过来的&#xff0c;应该是那个30天试用版&#xff0c;要是不会操作的话可以评论私我发你网盘。 安装 打开安装包(xshell / xftp &#xff0c;两个软件的安装步…

SpringBoot SpringBoot 开发实用篇 6 监控 6.2 SpringBoot Admin

SpringBoot 【黑马程序员SpringBoot2全套视频教程&#xff0c;springboot零基础到项目实战&#xff08;spring boot2完整版&#xff09;】 SpringBoot 开发实用篇 文章目录SpringBootSpringBoot 开发实用篇6 监控6.2 SpringBoot Admin6.2.1 可视化监控平台6.2.2 SpringBoot A…

论文阅读-Joint Audio-Visual Deepfake Detection(音视频Deepfake检测)

一、论文信息 论文名称&#xff1a;Joint Audio-Visual Deepfake Detection 会议&#xff1a;ICCV2021 作者团队&#xff1a; 二、动机与创新 动机 Visual deepfake上有许多检测方法和数据集&#xff0c;而对audio deepfake以及visual-audio两种模式之间的deepfake方法较少…

mybatis配置文件

名字&#xff1a; mybatis-config.xml 作用&#xff1a; 配置自己的数据库地址、名字、密码以及mysql驱动 ... <!--配置--> <configuration><!--属性--><properties></properties> <!--全局参数设置--><settings></settings> …

力扣 73. 矩阵置零 C语言实现

题目描述&#xff1a; 给定一个 m x n 的矩阵&#xff0c;如果一个元素为 0 &#xff0c;则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 题目链接 解题思路&#xff1a; 由于题目中提示了哈希表&#xff0c;所以本人想到的方法是建立一个哈希表分别用key和value…

用HTML+CSS仿网易云音乐网站(6个页面)

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

绘制路径

QPainterPath&#xff08;绘制器&#xff09; QPainterPath类提供一个容器&#xff0c;可以用来创建图形并且重复使用。绘制器路径是由许多图形构建基块&#xff08;如矩形、椭圆形、直线和曲线&#xff09;组成的对象。构建基块可以连接在封闭的子路径中&#xff0c;例如作为矩…

ALU——调用加法乘法模块

只调用加法模块的仿真图&#xff1a; &#xff08;注&#xff1a;alu_control 为十六进制 001高位加载 src2的低16位加载到高16位上 002算数右移 src1算数右移 &#xff08;高位补1&#xff09; 004逻辑右移 src1逻辑右移 &#xff08;逻辑右移直接补0&#xff09; 008逻辑左移…

MagicPods(在Windows电脑上可以实现airpods2弹窗,查看单个耳机电量、充电仓电量)

1.MagicPods的安装方式 Windows电脑下打开Microsoft Store,进入后搜索Magicpods。然后就可以点击下载。&#xff08;软件的费用是12元&#xff0c;可以先免费试用&#xff09; 有可能会出现&#xff1a;下载任何微软商店应用程序都显示错误代码: 0x80240438 解决方法&#xf…

基于HTML+CSS+JS制作商城(web前端网页制作课作业)---手机主题 7页

⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材&#xff0c;DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业 | 在线商城购物 | 水果商城 | 商城系统建设 | 多平台移动商城 | H5微商城购物商城项目 | HTML期末大学生网页设计作业 HTML&#xff1a;结构 CSS&#…

ER图到关系模型的转换和练习SQL语言

目录 一、实验要求 二、作业1解答 1&#xff0e;ER图 2&#xff0e;关系模型&#xff1a; 三、作业2解答 1. 建表并插入数据 2. 使用查询语句查询相关信息 查询计算机系男生的信息&#xff1a; 查询鹿晗的年龄 查询姓名第二个字为“丽”的同学的信息 按照性别列出男…

跨境人,是继续坚守还是求新变新?(Starday)

与以往相比&#xff0c;跨境电商行业圈有许多让卖家难以想象的负面新闻&#xff0c;从亚马逊封号潮、海运价格暴涨、服务商跑路、跨境电商公司倒闭等新闻常有耳闻&#xff0c;今年黑五等销售季的单量也让人不忍直视&#xff0c;许多跨境人战战兢兢&#xff0c;心中非常焦虑。如…

ANSYS mechanical如何在Workbench环境中使用高性能计算

ANSYS mechanical属于隐式结构有限元分析求解器&#xff0c;一般完成一个有限元分析过程需要前处理、求解和后处理三个步骤。前处理一般在图形工作站上完成&#xff0c;有限元求解可在工作站、集群及SMP 服务器上进行。 对于中小型问题&#xff08;例如1000 万节点以内的ANSYS…

基于Webrtc的视频通话录制功能-Android实现

基于Webrtc的视频通话录制功能-Android实现 webrtc本身并不支持视频通话的录制。 webrtc的sdk只是暴露了视频数据给开发者&#xff0c;而音频数据并没有向外暴露。 因此如果要进行视频通话的录制&#xff0c;需要修改webrtc的sdk&#xff0c;将音频数据暴露出来。 webrtc的下载…

【OpenCV-Python】教程:3-9 轮廓(4)更多函数

OpenCV Python 轮廓 【目标】 凸性缺陷查找点与多边形的关系不同形状的匹配 【代码】 左图中红色点为凸性检测的缺陷点&#xff0c;即凹点 右图为了验证点与多边形关系而做的图&#xff0c;也是官网要求做的练习。 import cv2 import numpy as np img cv2.imread(star.png…

契约锁电子签助力拍卖业务网上签约,保全证据、不可抵赖,成交快

近年&#xff0c;二手车、房产、股权、数字藏品以及法律诉讼资产的拍卖&#xff0c;逐步从线下向线上转型。电子签章技术的应用&#xff0c;解决了委托拍卖合同、竞买合同以及成交确认书等文件线上签署难题&#xff0c;帮助拍卖机构建立全程数字化的“网上拍卖”渠道&#xff0…