前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PySpark在windows下的安装及使用

PySpark在windows下的安装及使用

原创
作者头像
千万别过来
修改2023-05-08 21:41:07
1.2K0
修改2023-05-08 21:41:07
举报
文章被收录于专栏:推荐算法学习推荐算法学习

一、jdk安装

  • 必须要求为jdk1.8版本

JDK下载后环境变量配置

新增系统变量JAVA_HOME

Path新增

测试是否安装成功:javac -version(注意是javac不是java)

二、spark安装

官网下载http://spark.apache.org/downloads.html,遇到加载不了选项框的情况可以尝试用手机打开网址获取下载链接后下载

直接解压,注意路径不要有空格

环境变量配置

Path配置

测试安装情况,cmd输入spark-shell

出现Welcome to Spark 表示安装成功,如果没有装Hadoop,则会出现上面一个报错,但不影响Spark的安装

三、hadoop安装

官网下载https://hadoop.apache.org/releases.html

解压后配置相关环境

系统变量新增HADOOP_HOME

Path配置

四、winutils安装

windows环境下还需要装个东西来替换掉hadoop里的bin文件才行

下载地址:https://github.com/steveloughran/winutils

使用了和hadoop相近的版本,测试没问题

直接复制替换

再次测试:spark-shell

五、pyspark使用

代码语言:javascript
复制
# 包的安装
pip install pyspark -i https://pypi.doubanio.com/simple/

pyspark测试使用

代码语言:javascript
复制
from pyspark import SparkConf
from pyspark.sql import SparkSession
import traceback


appname = "test"  # 任务名称
master = "local"  # 单机模式设置'''
local: 所有计算都运行在一个线程当中,没有任何并行计算,通常我们在本机执行一些测试代码,或者练手,就用这种模式。
local[K]: 指定使用几个线程来运行计算,比如local[4]就是运行4个worker线程。通常我们的cpu有几个core,就指定几个线程,最大化利用cpu的计算能力
local[*]: 这种模式直接帮你按照cpu最多cores来设置线程数了。
'''
spark_driver_host = "10.0.0.248"


try:
    # conf = SparkConf().setAppName(appname).setMaster(master).set("spark.driver.host", spark_driver_host) # 集群
    conf = SparkConf().setAppName(appname).setMaster(master)  # 本地
    spark = SparkSession.builder.config(conf=conf).getOrCreate()
    sc = spark.sparkContext
    words = sc.parallelize(
        ["scala",
         "java",
         "hadoop",
         "spark",
         "akka",
         "spark vs hadoop",
         "pyspark",
         "pyspark and spark"
         ])
    counts = words.count()
    print("Number of elements in RDD is %i" % counts)
    sc.stop()
    print('计算成功!')
except:
    sc.stop()
    traceback.print_exc()  # 返回出错信息
    print('连接出错!')

如果出现报错为:

py4j.protocol.Py4JError: org.apache.spark.api.python.PythonUtils.isEncryptionEnabled does not exist in the JVM

在连接spark前增加spark的查找(直接放在代码最顶上)

代码语言:javascript
复制
import findspark
findspark.init()

测试结果:

代码语言:javascript
复制
F:\Anaconda3\python.exe D:/PycharmProjects/demo_pyspark.py
        
Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
Setting default log level to "WARN".
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).20/08/27 16:17:44 WARN Utils: Service 'SparkUI' could not bind on port 4040. Attempting port 4041.
Number of elements in RDD is 8
计算成功!


Process finished with exit code 0

注:pyspark保存文件的时候目录不能存在!!要不然会报错说目录已经存在,要记得把文件夹都删掉!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、jdk安装
  • 二、spark安装
  • 三、hadoop安装
  • 四、winutils安装
  • 五、pyspark使用
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com