Win10搭建Pyspark2.4.4+Pycharm开发环境(亲测可用)
创始人
2024-05-26 05:04:57
0

下载资源

  • hadoop3.0.0

  • spark-2.4.4-bin-without-hadoop

  • winutils下载(对应hadoop3.0.1的bin目录覆盖本地hadoop的bin目录)

  • jdk1.8(默认已按照配置)

  • conda/anaconda(默认已安装)

注意:cdh6.3.2的spark为2.4.0但是使用2.4.0本地pyspark有bug,下载的文件可能在第一次解压缩后,如未出现目录,则需要修改文件后缀为zip,再次解压缩

python环境(推荐cmd非powershell)

spark2.4.x不支持python3.7以上版本

conda create -n pyspark2.4 python=3.7
activate pyspark2.4
pip install py4j
pip install psutil

pyspark安装方法(推荐一)

  1. %SPARK_HOME%\python\pyspark目录复制到%CONDA_HOME%\pyspark2.4\Lib\site-packages下

  1. pip install pyspark=2.4.4

配置环境变量(自行百度)

以下只是示例,根据实际情况修改,路径不要有空格,如果有使用mklink /J 软链接 目录路径

系统变量添加
HADOOP_HOME
E:\bigdata\ENV\hadoop-3.0.0SPARK_HOME
E:\bigdata\ENV\spark-2.4.4-bin-without-hadoopPYSPARK_PYTHON
C:\Users\zakza\anaconda3\envs\pyspark2.4\python.exePATH添加
%HADOOP_HOME%\bin
%SPARK_HOME%\bin

修改配置文件

配置一 %SPARK_HOME%\conf目录下新建spark-env.cmd文件,内容如下

FOR /F %%i IN ('hadoop classpath') DO @set SPARK_DIST_CLASSPATH=%%i

配置二 %SPARK_HOME%\conf\目录下新建log4j.properties文件,内容如下

#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#    http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
## Set everything to be logged to the console
log4j.rootCategory=WARN, console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.target=System.err
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{1}: %m%n# Set the default spark-shell log level to WARN. When running the spark-shell, the
# log level for this class is used to overwrite the root logger's log level, so that
# the user can have different defaults for the shell and regular Spark apps.
log4j.logger.org.apache.spark.repl.Main=WARN# Settings to quiet third party logs that are too verbose
log4j.logger.org.spark_project.jetty=WARN
log4j.logger.org.spark_project.jetty.util.component.AbstractLifeCycle=ERROR
log4j.logger.org.apache.spark.repl.SparkIMain$exprTyper=INFO
log4j.logger.org.apache.spark.repl.SparkILoop$SparkILoopInterpreter=INFO
log4j.logger.org.apache.parquet=ERROR
log4j.logger.parquet=ERROR# SPARK-9183: Settings to avoid annoying messages when looking up nonexistent UDFs in SparkSQL with Hive support
log4j.logger.org.apache.hadoop.hive.metastore.RetryingHMSHandler=FATAL
log4j.logger.org.apache.hadoop.hive.ql.exec.FunctionRegistry=ERROR

配置Pycharm

注意:配置好环境变量重启下电脑,不然可能存在pycharm无法加载系统环境变量的情况

wc.txt

hello hadoop
hadoop spark python
flink storm spark
master slave
first
second thrid
kafka scikit-learn
flume
hive spark-streaming
hbase

wordcount测试代码

from pyspark import SparkContextif __name__ == '__main__':sc = SparkContext('local', 'WordCount')textFile = sc.textFile("wc.txt")wordCount = textFile.flatMap(lambda line: line.split(" ")).map(lambda word: (word, 1)).reduceByKey(lambda a, b: a + b)wordCount.foreach(print)

正常运行结果:

常见问题:

  1. spark-shell报错Caused by: java.lang.ClassNotFoundException: org.slf4j.Logger

解决方法:见上述配置一

  1. Pyspark报错ModuleNotFoundError: No module named 'resource'

解决方法:spark2.4.0存在的bug,使用spark2.4.4

  1. Pyspark报错org.apache.spark.sparkexception: python worker failed to connect back

解决方法:环境变量未配置正确,检查是否遗漏,并检查pycharm的configuration的环境变量里面能够看到

其他

关于%SPARK_HOME%\python\lib下的py4j-0.10.7-src.zip,pyspark.zip(未配置运行正常),也可以尝试添加到项目

相关内容

热门资讯

航天精神的介绍 航天精神的介绍 载人航天工稿袜轿程是当今世界高新技术发展水平的集中体现,是衡量一个国家综合国力的重要...
奇迹笨小孩男主被骗了吗 奇迹笨小孩男主被骗了吗 没有,刚开始和老总谈成了但是没有定金,自己找工人,厂房,白天去兼职高空作...
印第安人从哪里来? 印第安人从哪里来?做个科学鉴定就知道是哪里的人
反义词是什么 反义词是什么 向左转|向右转
大器晚成的含义 大器晚成的含义【解释】:大器:比喻大才。指能担当重任的人物要经过长期的锻炼,所以成就较晚。也用做对长...
《仙逆》作者耳根是什么地方人?... 《仙逆》作者耳根是什么地方人?老家什么地方?男,黑龙江 - 牡丹江中文名刘勇
一辈子爱静 (翻译成藏文)。感... 一辈子爱静 (翻译成藏文)。感谢大家帮帮忙。  चुप की एक जीवन भर प्यार
6月有什么节日? 6月有什么节日?1日儿童节 端午节是每年的农历五月初五,今年是公历6月8日.已经过了. 今天是6月1...
2021能回到原来高中复读吗? 2021能回到原来高中复读吗?只要你原来的高中招收复读的考生,那么你就可以回到你的原高中去复读。一般...
郑大圣的电影《村戏》资源 郑大圣的电影《村戏》资源点头像...
小朋友参加唱歌比赛的视频怎么拍 小朋友参加唱歌比赛的视频怎么拍小朋友参加唱歌比赛的视频怎么拍:直接用爱剪辑就好直接在主界面就能看到给...
训练宠物日记 训练宠物日记宠物日记 看了这个标题可别以为我要写的宠物是猫啊狗啊的,我的宠物是两只可爱的小乌龟哦!真...
魅魔哪个游戏或动漫里的? 魅魔哪个游戏或动漫里的?东方project里的
宝地的含义 宝地的含义释义:1、指地势优越或物资丰富的地方:这个县是种植水稻的宝地。2、敬辞,称对方所在的地方:...
《虎口拔牙》充溢着刀光剑影的智... 《虎口拔牙》充溢着刀光剑影的智齿规划吗?《虎口拔牙全集在线观看》 李乃文将胆怯如鼠却又不得不与日统交...
疑犯追踪 佐伊谁演的 疑犯追踪 佐伊谁演的佩姬·图柯(Paige Turco) - 柔依·摩根(Zoe Morgan)...
形容登场的成语 形容登场的成语横空出世、应运而生、抛头露面、崛地而起、焕然一新、春回大地、昙花一现、层出不穷、风起云...
第九首签诗:尘暗秦时镜。珉含卞... 第九首签诗:尘暗秦时镜。珉含卞氏瑗。所居石窟内。何日见光辉。这4句什么意思?镜面被灰尘覆盖,玉石被石...
狐狸和乌鸦的成语 狐狸和乌鸦的成语狐狸和乌鸦的成语狐狸和乌鸦一天,乌鸦得到了一块肉,被狐狸看到了。狐狸很想从乌鸦嘴里得...
赤壁之战时,火烧连环船这计策是... 赤壁之战时,火烧连环船这计策是谁想出来的?三国志讲是周瑜的计策。三国演义不是历史。