zoukankan      html  css  js  c++  java
  • win10下Anaconda3在虚拟环境python_version=3.5.3 中配置pyspark

    1. 序
    经过了一天的修炼,深深被恶心了,在虚拟环境中配置pyspark花式报错,由于本人实在是不想卸载3.6版的python,所以硬刚了一天,终于摸清了配置方法,并且配置成功,不抱怨了,开讲:

    2. 需求环境
    Anaconda3;(我的是最新版的Anaconda4.3.1(64位))

    3. 安装虚拟环境
    1、创建Python虚拟环境。
    使用 conda create -n your_env_name python=3.5(2.7、3.6等) anaconda 命令创建python版本为X.X、名字为your_env_name的虚拟环境。your_env_name文件可以在Anaconda安装目录envs文件下找到。
    2、 激活虚拟环境
    activate your_env_name
    3、 安装虚拟环境包
    conda install -n your_env_name
    至此一个名字是your_env_name的虚拟环境就建好了,它的python版本是3.5版本的,可以通过cmd进入,然后输入activate your_env_name在输出python然后查看到

    4. 资源准备
    spark_2.2.0_bin-hadoop2.7.tgz

    根据自己的需求版本,可以下载不同的spark版本,我用的是spark-2.0.1-bin-hadoop2.7,之后解压,注意存放的路径一定不能带空格,例如放到C:Program Files就不行。这里我放到了D:spark;之后就是添加环境变量。
    有两种方法:
    1、直接在path中添加环境变量:将D:sparkspark-2.0.1-bin-hadoop2.7in,和D:sparkspark-2.0.1-bin-hadoop2.7sbin都加到环境变量中。
    2、先新建一个SPARK_HOME的环境变量,值为D:sparkspark-2.0.1-bin-hadoop2.7,之后将%SPARK_HOME%in和%SPARK_HOME%sbin加入到path中
    如果想看是否添加成功,需要将虚拟环境加入到path变量中,然后上移到原始python=3.6的路径前面,之后再cmd中输入pyspark就会出现下面的情况。注意:如果虚拟环境的路径不在原始路径前面会出现找不到路径的情况,当然这个路径只是为了看是否安装成功,跟在pycharm中运行成功与否没有任何关系,你也可以再变换回去。


    spark的依赖环境中有对hadoop的需求,因此还需要下载对应版本的hadoop,这里面我下载的是有关hadoop2.7+的资源,无需安装完整的Hadoop,但需要hadoop.dll,winutils.exe等。根据下载的Spark版本,下载相应版本的hadoop2.7.1。
    解压,添加环境变量(如pyspark添加环境变量一样,同样有两种方法),经过我的测试,好像这里面的资源不太够,反正我用着会报错,因此我选择了从原始资源中下载bin文件,然后替换了前面hadoop2.7.1里面的bin文件。
    要想在PyCharm中调用pySpark,需要加载包。将D:sparkspark-2.0.1-bin-hadoop2.7python文件夹下pySpark文件夹拷贝到D:ProgramDataAnaconda3envs ensorflowLibsite-packages**(注:这个地方是要拷贝到虚拟环境的包路径)

    4. 1关键
    注意咯,,,接下来这步操作决定我们是否能够完成配置,,,
    1、在D:sparkspark-2.0.1-bin-hadoop2.7in文件夹下找到pyspark文件,然后用notepad++打开。
    2、找到export PYSPARK_PYTHON然后把这个地方变成export PYSPARK_PYTHON=python3
    3、保存。。。大功告成
    4、重启(可以先略过此步,进行下面验证,如果验证还是花式报错(2)就可以上本步,成为大绝杀,然后可以爽歪歪用pyspark了)
    到目前为止,我们的准备工作终于做好了,,,不容易啊。。。其实到现在为止我们也算是安装完成,,惊不惊喜,意不意外,,没想到这么简单吧,哈哈哈哈哈哈,接下来我们就可以验证了。。

    5. 验证
    在这里引用雪伦的例子,

    新建wordCount.py文件,写代码
    注意setAppName、setMaster中千万不要带空格,否则会出现“Java gateway process exited before sending the driver its port number”的报错

    import sys
    from operator import add

    from pyspark import SparkContext


    if __name__ == "__main__":
    sc = SparkContext(appName="PythonWordCount")
    lines = sc.textFile('words.txt')
    counts = lines.flatMap(lambda x: x.split(' '))
    .map(lambda x: (x, 1))
    .reduceByKey(add)
    output = counts.collect()
    for (word, count) in output:
    print "%s: %i" % (word, count)

    sc.stop()
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    其中words.txt中的内容是

    good bad cool
    hadoop spark mlib
    good spark mlib
    cool spark bad
    1
    2
    3
    4
    然后运行,,,你会发现——————————————————————————报错了是不是,哈哈哈。虽然不知道你报的什么错,肯定报错了,这才是虚拟环境装pyspark迷人的地方,花式报错,,别着急,那是因为我们没有添加项目的环境变量,在图中环境变量位置把SPARK_HOME的路径添加进去,之后再运行


    出现


    这就说明我们已经大功告成啦啦啦啦啦啦!!!!!!!!!!!!!!
    ---------------------
    作者:Biorad
    来源:CSDN
    原文:https://blog.csdn.net/loverminger/article/details/76095845
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    C++笔记(2018/2/6)
    2017级面向对象程序设计寒假作业1
    谁是你的潜在朋友
    A1095 Cars on Campus (30)(30 分)
    A1083 List Grades (25)(25 分)
    A1075 PAT Judge (25)(25 分)
    A1012 The Best Rank (25)(25 分)
    1009 说反话 (20)(20 分)
    A1055 The World's Richest(25 分)
    A1025 PAT Ranking (25)(25 分)
  • 原文地址:https://www.cnblogs.com/zgq123456/p/9977827.html
Copyright © 2011-2022 走看看