python本地开发spark

本文档详细记录了在本地使用Python开发Spark项目的过程,包括安装py4j和pyspark、下载并配置Spark、设置环境变量以及添加hadoop和java依赖。通过测试代码验证配置是否成功,适合初学者参考。
摘要由CSDN通过智能技术生成

笔者最近项目有点杂,什么都做,最近有涉及到spark的mllib上了。
本地没有spark环境,但需要调用spark的api。费了一番周折,记录下配置方法。

安装py4j和pyspark

笔者安装的是Anaconda2,带有了全套的python环境。本地开发spark项目,还需要安装py4j和pyspark的lib.

pip install py4j
pip install pyspark

下载spark

注意,只是下载spark而已,不需要安装。
地址是:https://spark.apache.org/downloads.html
下载 spark-2.2.0-bin-hadoop2.6.tgz
解压到 D:\software\spark-2.2.0-bin-hadoop2.6

配置环境变量

这一步比较重要。
主要的三个配置如下:

变量名:SPARK_HOME
变量值:D:\software\spark-2.2.0-bin-hadoop2.6

变量名:PYTHONPATH
变量值:%SPARK_HOME%\python;%SPARK_HOME%\python\lib\py4j-0.10.4-src.zip

变量名:Path
变量值:%SPARK_HOME%\bin

添加hadoop和java的依赖

下载winutils.exe.将其放在文件夹D:\software\spark-2.2.0-bin-hadoop2.6\HADOOP_HOME\bin下。
下载并安装java。

测试代码

# encoding: utf-8
from pyspark import SparkContext
import os
import sys
os.environ['SPARK_HOME'] = "D:\\software\\spark-2.2.0-bin-hadoop2.6"
os.environ['JAVA_HOME'] = "D:\\java\\jdk1.8"
sys.path.append("D:\\software\\spark-2.2.0-bin-hadoop2.6\\python")
os.environ['HADOOP_HOME'] = "D:\\software\\spark-2.2.0-bin-hadoop2.6\\HADOOP_HOME"

sc = SparkContext("local", "Simple App")
from numpy import array
from pyspark.mllib.clustering import BisectingKMeans
data = array([0.0,0.0, 1.0,1.0, 9.0,8.0, 8.0,9.0]).reshape(4, 2)
bskm = BisectingKMeans()
model = bskm.train(sc.parallelize(data, 2), k=4)
p = array([0.0, 0.0])
print model.predict(p)
print model.k
print model.computeCost(p)

注意,在代码中添加了四个环境变量。
HADOOP_HOME指定winutils.exe所在的文件夹的上一级目录(不含bin),否则会提示找不到winutils.exe。
上述代码能正常运行,说明配置无误。

运行结果可能提示:
Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
表示无法使用原生hadoop环境,使用编译好的java类,对测试无影响。

scala本地发开spark的配置环境和python相似。

贴一下其他的参考文档:
http://www.jianshu.com/p/5fc3470165b8
http://blog.csdn.net/hjxinkkl/article/details/57083549?winzoom=1

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值