在Windows上配置pyspark环境

在python中使用pyspark并不是单纯的导入pyspark包就可以实现的。需要由不同的环境共同搭建spark环境,才可以在python中使用pyspark。

搭建pyspark所需环境:
python3,jdk,spark,Scala,Hadoop(可选)

一、下载并配置环境变量

1.1 jdk

下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

打开Windows中的环境变量:

创建JAVA_HOME:C:\Program Files\Java\jdk1.8.0_181
创建CLASSPATH:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
在Path添加:%JAVA_HOME%\bin;
测试是否安装成功:打开cmd命令行,输入java -version

1.2 Scala

下载地址:https://downloads.lightbend.com/scala/2.12.8/scala-2.12.8.msi
下载后进行安装

创建SCALA_HOME: C:\Program Files (x86)\scala

Path添加:;%SCALA_HOME%\bin; %JAVA_HOME%\bin;;%HADOOP_HOME%\bin

测试是否安装成功:打开cmd命令行,输入scala -version

1.3 spark

下载地址:http://mirror.bit.edu.cn/apache/spark/spark-3.0.0-preview2/spark-3.0.0-preview2-bin-hadoop2.7.tgz
也可以选择下载指定版本:http://spark.apache.org/downloads.html
在Windows上配置pyspark环境_第1张图片
下载好之后解压放在随便一个目录下即可,但是目录名不可以有空格。

环境变量:

创建SPARK_HOME:D:\spark-2.2.0-bin-hadoop2.7

Path添加:%SPARK_HOME%\bin

测试是否安装成功:打开cmd命令行,输入spark-shell

spark-shell时报错:error not found:value sqlContext。参考:https://www.liyang.site/2017/04/19/20170419-spark-error-01/
或者是路径中有空格所致。

1.4 Hadoop

如果你需要去hdfs取数据的话,就应该先装hadoop。对于spark和hadoop的关系,可以移步这篇博客:Spark是否会替代Hadoop?

下载地址:
http://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.7.7/hadoop-2.7.7.tar.gz
在Windows上配置pyspark环境_第2张图片
解压到指定目录即可。

环境变量:

创建HADOOP_HOME:D:\hadoop-2.7.7

Path添加:%HADOOP_HOME%\bin

测试是否安装成功:打开cmd命令行,输入hadoop

hadoop测试时报错:Error: JAVA_HOME is incorrectly set。参考:https://blog.csdn.net/qq_24125575/article/details/76186309

1.5 pyspark

python下安装pyspark,可以先去官网上将pyspark下载之后,再进行安装。避免超时
下载地址:https://pypi.tuna.tsinghua.edu.cn/packages/9a/5a/271c416c1c2185b6cb0151b29a91fff6fcaed80173c8584ff6d20e46b465/pyspark-2.4.5.tar.gz

下载之后使用pip install pyspark-2.4.5.tar.gz即可安装。

二、测试是否安装成功

测试整体环境是否搭建完成:
新建py文件并包含下面的测试代码:


```python
from pyspark import SparkContext

sc = SparkContext("local", "count app")
words = sc.parallelize(
    ["scala",
     "java",
     "hadoop",
     "spark",
     "akka",
     "spark vs hadoop",
     "pyspark",
     "pyspark and spark"
     ])
counts = words.count()
print("Number of elements in RDD -> %i" % counts)

如果还不放心:

from pyspark import SparkContext
from pyspark import SparkConf
conf = SparkConf().setAppName("miniProject").setMaster("local[*]")
sc=SparkContext.getOrCreate(conf)
rdd=sc.parallelize([1,2,3,4,5])
rdd1=rdd.map(lambda r:r+10)
print(rdd1.collect())
再试一次。

注意:建议在代码之前加上这两行代码,可以自动寻找spark的安装位置,是在py文件的最上端加入。

import findspark
findspark.init()

你可能感兴趣的:(学习笔记)