zoukankan      html  css  js  c++  java
  • Ubuntu下导入PySpark到Shell和Pycharm中(未整理)

    实习后面需要用到spark,虽然之前跟了edX的spark的课程以及用spark进行machine learning,但那个环境是官方已经搭建好的,但要在自己的系统里将PySpark导入shell(或在Python里可以import pyspark)还是需要做一些操作的。(下图,忘了先define一个sc,+。+|||)自己built的和官方pre-built的版本都可以使用 这个方法。 我们的目标是

    1. 任意目录下在shell里启动pyspark
    2. 在Python里import pyspark(包括ImportError: No module named py4j.java_gateway的解决办法,参考推库的文章,见参考)
    3. 导入pyspark到pycharm中也可以使用。因为我发现第1,2实现了后,尽管在shell中输入Python后,以及在ipython notebook中可直接import pyspark,但Pycharm(同IDEA)中无法直接import进来!需要配置环境变量

    importpyspark 今天查了下有关导入pyspark的相关内容,stakoverflow上有人回答了这个问题(见后文reference),照着这个以及其它的回答提示 混合起来看了下,实现了将Pyspark导入到Python里。 下面我就略去安装Spark的过程(Spark,JDK,scala的环境配置),不过导入PySpark和安装Spark也都是配置环境变量,我下面将 /etc/profile和~/.bashrc两个文件下的内容放出。我这里用的Spark的版本(spark-1.2.0-bin- hadoop2.4)是1.2官方已经build好的version。

    配置/etc/profile和~/.bashrc文件

    配置Spark,JDK,Scala的环境变量,并声明Python的安装位置(完成下图就可以使用Spark了)。

    其中有几个要说明的(算是简单的安装步骤了):

    1. 下载Spark,JDK和Scala到指定目录(我这里就是当前用户Yuens目录下的MySpark文件夹)并解压缩。
    2. 通过pwd命令得到对应的JDK,Scala和Spark的根目录。分别复制到一个地方,比方说gedit什么的。
    3. Ubuntu下shell里输入 sudo vim /etc/profile 并回车,编辑上图内容退出并保存。需要注意自己的版本和对应路径名。
    4. 保存退出后,使用命令 source /etc/profile 并回车,对刚刚修改的配置环境变量的文件进行更新生效。
    5. 这时候就可以进入Spark根目录下的bin,使用命令./pyspark或者./spark在命令行下交互式地使用spark了。

    以上就是安装spark的过程。下面是配置PySpark导入到Shelll的文件配置。还是对/etc/profile文件进行配置,此外再对~/.bashrc文件进行配置。操作流程如下:


    见上图

    1. shell下输入 sudo vim ~/.bashrc 并回车,添加内容如上图的下半部分(export SPARK_HOME以及export PYTHONPATH,参考/etc/profile里的SPARK_HOME和PYTHONPATH,这里截图没截取完整),追加完内容后保存并退出。 shell下更新保存的配置文件 source ~/.bashrc 使之生效。
    2. 测试,在任意路径下输入pyspark均可成功启动PySpark。比方说在系统根目录下cd /,输入pyspark并回车,成功启动pyspark(输出日志略多,其实也可设置日志显示级别),可以进行一些简单的rdd操作作为测试。

    ImportError: No module named py4j.java_gateway

    出现这个问题,在shell键入 sudo vi .bashrc(其实还是编辑~/.bashrc文件),之后将之前新增进去的命令改为 export PYTHONPATH=SPARKHOME/python/:SPARK_HOME/python /lib/py4j-0.8.2.1-src.zip:$PYTHONPATH这一句就好,其它都可以注释掉,之后source .bashrc,再试试应该就成功了(任意目录下在shell里启动pyspark以及在Python里import pyspark)。

    PyCharm环境变量配置

    打开Pycharm按照如下进行配置,我这里提供的方法只是针对单一文件,当然如果这个文件是一个类或者之类的要导入的文件,其它没有引用它的文件 也要使用到pyspark的话还是需要在对应文件中进行配置的。 当然也有一劳永逸的方法,可以设置pyspark的的环境变量导入到默认的环境变量中去,大家感兴趣的可以自行研究(不是很麻烦)。这里不展开讨论,好吧 开始。 在PyCharm的menu里找到Run => Edit Configurations,点击打开。             见下图,分为以下几个步骤:

    • STEP1:选择你要配置的环境变量的文件,在左侧选择对应的py文件;
    • STEP2:点击Environment那里的…省略号;
    • STEP3:点击+号新增环境变量;
    • STEP4:新增两个环境变量,对应内容,第一个Name是SPARK_HOME,其Value是你对应安装SPARK的绝对路径(注,不包括bin),第二个Name是PYTHONPATH,其Value是”SPARKHOME/python/lib/py4j0.8.2.1src.zip:PYTHONPATH”(把其中的SPARKHOMEPYTHONPATH分别用你的SPARK和Python的目录替换掉,美元符号不要,没有旁边的双引号,英文冒号保留即可)。

    好了,现在让我们import pyspark测试一下吧,不过写了import pyspark之后或者类似下面这句话导入,对应的还是有红色波浪线,其实是可以正常运行的=。=好吧(可能是PyCharm神经末梢或者反射弧比较长 0.0),无视它。运行下面这个例子(部分截图,忘了对sc.stop(),==0)。结果用红色圈出来了。

                 

    后记

    后来,我再次按照自己当时写的博客的方法来配置,没有配置对,同时,细心的同学可能也会发现,在上面pycharm中,中”from pyspark import SparkContext, SparkConf”下方有红色的波浪线,虽然可以用,但似乎还是存在问题。同时,我也在后来没有配置出来。

    最近这两天在配置spark的环境,为的是在ipython notebook中以及pycharm中可以是用pyspark。昨天出了点小状况(可能是更新了系统,或者是配置环境变量有问题但我后来排除了这点,或 者是和卸载了python3有关),导致①桌面无法显示侧边栏和上顶栏消失不见;②桌面右键无法显示更改桌面背景,也就是找不到控制面板;③系统默认字体 改了,浏览器字体显示异常(直到现在也是);④输入法无法是用;⑤ctrl+Alt+T无法打开终端,还好ctrl+Alt+F1可以,同时docky面 板还在,面板上有pycharm,在pycharm里可以是用终端。

    在百度了相关的问题后,但我这不属于通常的问题(网上给的答案无法解决)。无奈,找到一个恢复初始化桌面的一段代码,对桌面进行了初始化,勉强好 了。虽然侧边栏和上顶部恢复了,但侧边栏图标初始化为了之前最初的时候的,浏览器在浏览网页时候字体有问题(控制面板设定字体无果)。

    但是!我初始化桌面完成后,早上试了试pycharm!竟然好了。”from pyspark import SparkContext, SparkConf”这句底下没有红线,此外也可以跑。现在,我把在pycharm的configuration里的环境变量记录,以及把.bashrc 和/etc/profile文件中相关的地方记录。

    pycharm的configuration

    其实和上文中配置pycharm的一样:

     ~/.bashrc

     /etc/profile

    Reference

    • apache spark – importing pyspark in python shell – Stack Overflow http://stackoverflow.com/questions/23256536/importing-pyspark-in-python-shell#
    • bashrc与profile的区别 http://www.cnblogs.com/finallyliuyu/archive/2013/05/23/3095872.html
    • Linux环境变量配置的三个方法–/etc/profile,~/.bashrc,shell http://www.360doc.com/content/10/0818/15/935385_46953760.shtml
    • Linux下profile和bashrc四种的区别 http://blog.itpub.net/27040306/viewspace-732343/
    • Spark 入门(Python、Scala 版) – 推酷 http://www.tuicool.com/articles/zQbEZzu
    • Configuration – Spark 1.4.1 Documentation(虽然没参考这个,不过也贴出来吧) http://spark.apache.org/docs/latest/configuration.html#environment-variables
    • Python Programming Guide – Spark 0.9.0 Documentation(虽然没参考这个,不过也贴出来吧,有参考价值) http://spark.apache.org/docs/0.9.0/python-programming-guide.html
    • python – KeyError: SPARK_HOME during SparkConf initialization – Stack Overflow

      http://stackoverflow.com/questions/31566250/keyerror-spark-home-during-sparkconf-initialization

    • 还参考了IDEA的环境变量配置方法(都是一家出的IDE),没找到,大同小异
    • Spark入门(Python版) – 博客 – 伯乐在线(这个里面有IPYTHON notebook的环境变量配置,当然如果你没有在/etc/profile或者~/.bashrc中配置环境变量,或者不想再那两个文件里配置,可以参 考这里的环境变量配置,以及EC2上的环境配置)

      http://blog.jobbole.com/86232/

  • 相关阅读:
    20100320 ~ 20100420 小结与本月计划
    datamining的思考
    谈谈网络蜘蛛 爬开心网001的一些体会
    将 ASP.NET MVC3 Razor 项目部署到虚拟主机中
    Eclipse代码中中文字显示很小的解决办法
    U8800一键ROOT删除定制软件 安装新版Docment to go
    Android(安卓) U8800 长按 搜索键、返回键 锁屏或解锁的设置方法
    JDK5.0新特性系列3.枚举类型
    JDK5.0新特性系列1.自动装箱和拆箱
    网游运营基本概念及专业术语
  • 原文地址:https://www.cnblogs.com/felixzh/p/4973952.html
Copyright © 2011-2022 走看看