Win10搭建Pyspark2.4.4+Pycharm开发环境的图文教程(亲测)
作者:Zakza 发布时间:2021-03-21 02:07:59
下载资源
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安装方法(推荐一)
%SPARK_HOME%\python\pyspark目录复制到%CONDA_HOME%\pyspark2.4\Lib\site-packages下
pip install pyspark=2.4.4
配置环境变量(自行百度)
以下只是示例,根据实际情况修改,路径不要有空格,如果有使用mklink /J 软链接 目录路径
系统变量添加
HADOOP_HOME
E:\bigdata\ENV\hadoop-3.0.0
SPARK_HOME
E:\bigdata\ENV\spark-2.4.4-bin-without-hadoop
PYSPARK_PYTHON
C:\Users\zakza\anaconda3\envs\pyspark2.4\python.exe
PATH添加
%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 SparkContext
if __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)
正常运行结果:
常见问题:
spark-shell报错Caused by: java.lang.ClassNotFoundException: org.slf4j.Logger
解决方法:见上述配置一
Pyspark报错ModuleNotFoundError: No module named 'resource'
解决方法:spark2.4.0存在的bug,使用spark2.4.4
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(未配置运行正常),也可以尝试添加到项目
来源:https://blog.csdn.net/qq_18453581/article/details/129098130


猜你喜欢
- 本文研究的主要问题时Python读取word文本操作,分享了相关概念和实现代码,具体如下。一,docx模块Python可以利用python-
- 在运营或者对各种 SDK 或者 API 进行调试的时候,邮件功能基本上都会被使用到。在测试的时候,可能很多人都会使用 SMTP 或者自己的邮
- 前言Pytorch、Tensoflow等许多深度学习框架集成了大量常见的网络层,为我们搭建神经网络提供了诸多便利。但在实际工作中,因为项目要
- 开发环境的搭建是一件入门比较头疼的事情,在上期的文稿基础上,增加一项Anaconda的安装介绍。Anaconda是Python的一个发行版本
- 本文实例讲述了jQuery实现网页抖动的菜单抖动效果。分享给大家供大家参考。具体如下:这里的jQuery抖动导航菜单效果,兼容IE7/8/9
- 目录1.触发器是什么?2.创建触发器创建触发器的语法如下:创建多个执行语句的触发器: NEW和OLD的使用:3.使用触发器1.触发
- 网上学习的时候总会遇到一些好的文章,分享给大家,也谢谢作者的分享。Python 简介Python 是一个高层次的结合了解释性、编译性、互动性
- 程序没有改动过运行一直正常,突然有一天同事告知出现错误了。经过检查发现传递的数据中出现了#等特殊字符,浏览器只取到#号前面的数据,后面的被截
- 命令首先数据库迁移的两大命令: python manage.py makemigrations & python manage.py
- 人一旦习惯了某些东西就很难去改,以及各种各样的原因,新的浏览器越来越多,而老的总淘汰不了。增长总是快于消亡导致了浏览器兼容是成了谈不完的话题
- 大家都在关注视觉的盛宴,西方的美学;今天就分享下,中国最为古老的美,也是身边随处可见的美学–中国汉字书法之美;古文者,仓颉做造也。仰观奎星园
- 最近几天,学习python3的对FTP操作,做下总结!!!!1.FTP链接这样写的好处就是如果报错,很快就能找到错在哪里,方便找到问题。2.
- 今天帮同事处理一个棘手的事情,问题是这样的:无论在客户机用哪个版本的mysql客户端连接服务器,发现只要服务器端设置了character-s
- 本文总结了ASP初学者常犯的几个错误,希望对asp学习者有所帮助!1.记录集关闭之前再次打开:-----------------------
- JavaScript 循环中,i++ 与 i– 那个比较快?相信有不少朋友看过相关的讨论文章,比如这篇。文章解释了开启优化选项后,i– 的
- 概述据说fastapi是目前最快的异步框架,遂决定将其和django异步进行并发比较。先说结果fastapi的异步可以使整体运行速度非常均衡
- 相信大家都知道jQuery是最优秀的Javascript框架之一。以其语法简单灵活而大受Web designer欢迎。所以很多网页设计师结合
- 编程是数据科学中不可或缺的技能,虽然创建脚本来执行基本功能很容易,但编写大规模可读性良好的代码需要更多的思考。关于PEP-8pycodest
- 本文实例讲述了MySQL中ROUND函数进行四舍五入操作陷阱。分享给大家供大家参考,具体如下:在MySQL中, ROUND 函数用于对查询结
- 回车和换行的历史:机械打字机有回车和换行两个键作用分别是:换行就是把滚筒卷一格,不改变水平位置。 (即移到下一行,但不是行首,而是和上一行水