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
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    Mac 键盘快捷键
    行业分析
    大数据导航
    SQL循环语句 详解
    SQL中使用循环结构
    常用 git 基础命令
    最近众包-有意思
    薪酬体系设计
    海氏评估法
    原则类
  • 原文地址:https://www.cnblogs.com/zgq123456/p/9977827.html
Copyright © 2011-2022 走看看