在windows上pycharm配置spark环境

在pycharm中配置开发环境
a、打开pycharm,创建一个progect,设置run configuration
在这里插入图片描述
在环境变量中添加HADOOP_HOME,SPARK_HOME和PYTHONPATH
b、安装pyspark 和py4j
pyspark安装,在cmd终端中pip install pyspark或者在pycharm的setting中
在这里插入图片描述
安装的比较慢,勿骄勿躁。
py4j
Py4j可以使运行于python解释器的python程序动态的访问java虚拟机中的java对象。Java方法可以像java对象就在python解释器里一样被调用,Java collection也可以通过标准python collection方法调用。Py4j也可以使java程序回调python对象。
测试程序

import os
import sys

# Path for spark source folder
os.environ['SPARK_HOME']="D:\spark-2.2.0-bin-hadoop2.7"

# Append pyspark to Python Path
sys.path.append("D:\spark-2.2.0-bin-hadoop2.7\python")

try:
from pyspark import SparkContext
from pyspark import SparkConf

print ("Successfully imported Spark Modules")

except ImportError as e:
print ("Can not import Spark Modules", e)
sys.exit(1)

在这里插入图片描述
环境配置好
问题:
安装速度比较慢
解决方案:
pip 安装python包-使用豆瓣的镜像源
虽然用easy_install和pip来安装第三方库很方便
它们的原理其实就是从Python的官方源pypi.python.org/pypi 下载到本地,然后解包安装。
不过因为某些原因,访问官方的pypi不稳定,很慢甚至有些还时不时的访问不了。

跟ubuntu的apt和centos的yum有各个镜像源一样,pypi也有。
在国内的强烈推荐豆瓣的源
http://pypi.douban.com/simple/
注意后面要有/simple目录。
使用镜像源很简单,用-i指定就行了:
Linux 平台下安装方式:

sudo easy_install -i http://pypi.douban.com/simple/ ipython
sudo pip install -i http://pypi.douban.com/simple/ --trusted-host=pypi.douban.com/simple ipython

windows 平台下安装方式:

pip  install  -i  https://pypi.doubanio.com/simple/  --trusted-host pypi.doubanio.com pyspark

使用镜像源很简单,用-i指定就行了:

sudo easy_install -i http://pypi.douban.com/simple/ saltTesting 
sudo pip install -i http://pypi.douban.com/simple/ saltTesting

spark开发常见问题:java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
最近在学习研究pyspark机器学习算法,执行代码出现以下异常:

19/06/29 10:08:26 ERROR Shell: Failed to locate the winutils binary in the hadoop binary path
java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
at org.apache.hadoop.util.Shell.getQualifiedBinPath(Shell.java:379)
at org.apache.hadoop.util.Shell.getWinUtilsPath(Shell.java:394)
at org.apache.hadoop.util.Shell.<clinit>(Shell.java:387)
at org.apache.hadoop.util.StringUtils.<clinit>(StringUtils.java:80)
...........
19/06/29 10:08:26 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties

从程序运行度方面来说,这个异常并不影响spark程序的继续执行。但是作为一个程序员看到异常就如出现bug,必须让这种异常消失!
分析异常:根据提示应该是Hadoop binaries.中缺少winutils.exe这个配置。
解决方法:
1.首先检查本地window环境是否已经安装hadoop,若没有则先配置hadoop环境变量
1)下载Hadoop,我本次操作使用的是hadoop-2.7.3,当然你可以根据自己需求去官网下载
官网下载地址:
网盘分享我使用的版本:
链接: https://pan.baidu.com/s/1-ssNBynSzrC5iG5ozwqAUA 提取码: zdu5
2)配置windows环境变量。本机是windows10系统
先添加HADOOP_HOME配置
在这里插入图片描述
在配置path路径:
在这里插入图片描述
3) 下载winutils.exe,hadoop.dll放到hadoop环境的bin目录,建议尽量使用版本匹配的,必然hadoop-2.6就使用2.6版本的。2.7版本就使用2.7.。理论上2.7版本可以使用在2.6版本上

这里提供hadoop-3.2.1版本的这2个文件:
在这里插入图片描述
重启电脑再次测试 异常提示消失。
提醒:这个异常提示并不一定是spark程序开发时才会出现。在做hadoop程序开发必然写mapreduce程序时 也会遇到同样情况。操作方法一致即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值