pySpark 在windows下环境搭建

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/funfun0/article/details/77802590

本人系统是windows,64位
要想在windows下搭建Spark(python版本)主要分为:

  • JDK安装配置
  • Scala安装配置
  • Spark安装配置
  • Hadoop安装配置
  • Python安装配置
  • PyCharm运行

JDK安装配置

JDK 版本需要在 1.8
下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html
配置环境变量
添加变量 JAVA_HOME 值为jdk目录
在path 追加 ;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
保存后
cmd 运行 java -version
这里写图片描述

Scala安装配置

Scala download 下载对应scala 版本 【注意:Scala 1.6.2版本只能使用Spark 2.10各个版本;Scala 2.10.6 可适配Spark1.3.0到1.6.2】
windows 下直接下载msi 直接运行 会自动写入到path
这里写图片描述

安装完毕,验证Scala
这里写图片描述

[如果系统找不到scala 命令,就自己手动将scala安装目录加入到 系统环境变量的path]

Spark安装配置

spark download 安装spark
这里写图片描述
安装的目录应该是要与spark bin的 同一层上
解压后
运行cmd
spark-shell
这时应该还没成功的,会有报错
请看下一步

Hadoop安装配置

hadoop 2.6.4 download
下载hadoop解压之后
设置环境变量
添加 HADOOP_HOME 值为hadoop解压目录
添加path ;%HADOOP_HOME%\bin

下载2.6版本hadoop 会缺少winutils.exe
http://blog.csdn.net/u011513853/article/details/52865076 下载对应hadoop 版本的winutils.exe
下载完毕后 将 winutils.exe 复制到 %HADOOP_HOME%\bin 目录下
注意:2.7版本也适用于2.6
还要重点注意!!
需要修改 winutils.exe 访问权限
先进入 到%HADOOP_HOME%\bin 目录下

hadoop fs -chmod -R 777 /tmp

运行 spark-shell

这里写图片描述

从图中可以看到,在直接输入spark-shell命令后,Spark开始启动,并且输出了一些日志信息,大多数都可以忽略,需要注意的是两句话:

Spark context available as sc.
SQL context available as sqlContext.

Python安装配置

windows 下的话就很简单啦,直接下载msi点击运行就可以了

https://python-xy.github.io/downloads.html

这里是python(X,Y)已经包含spark需要的lib了,所以很方便
python 下载,如果是msi就自动加入path,如果不行就手动加入吧
cmd输入 python

这里写图片描述

PyCharm运行

Pycharm IDE 下载
http://www.jetbrains.com/pycharm/download/#section=windows

1 设置工程的环境变量
这里写图片描述

2 引入相关的spark库

这里写图片描述

3.测试spark

__author__ = 'Helen Huang'
import os
import sys

os.environ['SPARK_HOME']="D:\spark\spark-1.6.2-bin-hadoop2.6\spark-1.6.2-bin-hadoop2.6"
sys.path.append("D:\spark\spark-1.6.2-bin-hadoop2.6\spark-1.6.2-bin-hadoop2.6\python")


from pyspark import SparkContext

sc = SparkContext('local')
doc = sc.parallelize([['a','b','c'],['b','d','d']])
words = doc.flatMap(lambda d:d).distinct().collect()
word_dict = {w:i for w,i in zip(words,range(len(words)))}
word_dict_b = sc.broadcast(word_dict)

def wordCountPerDoc(d):
    dict={}
    wd = word_dict_b.value
    for w in d:
        if dict.has_key(wd[w]):
            dict[wd[w]] +=1
        else:
            dict[wd[w]] = 1
    return dict
print doc.map(wordCountPerDoc).collect()
print "successful!"

输出为 successful! 则配置成功了!!!

至于IDE的话也可以用IDEA IntelliJ ,不过配置会复杂些~

展开阅读全文

没有更多推荐了,返回首页