python实现spark开发_python本地开发spark

笔者最近项目有点杂,什么都做,最近有涉及到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相似。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值