链接Spark与iPython Notebook

我在线学习了一些教程,但是他们不能在OS X El Capitan(10.11)上使用Spark 1.5.1

基本上我已经运行这个命令下载apache-spark

 brew update brew install scala brew install apache-spark 

更新.bash_profile

 # For a ipython notebook and pyspark integration if which pyspark > /dev/null; then export SPARK_HOME="/usr/local/Cellar/apache-spark/1.5.1/libexec/" export PYSPARK_SUBMIT_ARGS="--master local[2]" fi 

 ipython profile create pyspark 

创build了一个以这种方式configuration的启动文件~/.ipython/profile_pyspark/startup/00-pyspark-setup.py

 # Configure the necessary Spark environment import os import sys # Spark home spark_home = os.environ.get("SPARK_HOME") # If Spark V1.4.x is detected, then add ' pyspark-shell' to # the end of the 'PYSPARK_SUBMIT_ARGS' environment variable spark_release_file = spark_home + "/RELEASE" if os.path.exists(spark_release_file) and "Spark 1.4" in open(spark_release_file).read(): pyspark_submit_args = os.environ.get("PYSPARK_SUBMIT_ARGS", "") if not "pyspark-shell" in pyspark_submit_args: pyspark_submit_args += " pyspark-shell" os.environ["PYSPARK_SUBMIT_ARGS"] = pyspark_submit_args # Add the spark python sub-directory to the path sys.path.insert(0, spark_home + "/python") # Add the py4j to the path. # You may need to change the version number to match your install sys.path.insert(0, os.path.join(spark_home, "python/lib/py4j-0.8.2.1-src.zip")) # Initialize PySpark to predefine the SparkContext variable 'sc' execfile(os.path.join(spark_home, "python/pyspark/shell.py")) 

然后我运行ipython notebook --profile=pyspark和笔记本工作正常,但sc (火花上下文)无法识别。

任何人都设法与Spark 1.5.1做到这一点?

编辑:你可以按照这个指南让它工作

https://gist.github.com/tommycarpi/f5a67c66a8f2170e263c

我安装了Jupyter,事实上它比你想象的要简单:

  1. 为OSX安装anaconda 。
  2. 安装jupyter在terminal中input下一行点击我获取更多信息 。

     ilovejobs@mymac:~$ conda install jupyter 
  3. 更新jupyter以防万一。

     ilovejobs@mymac:~$ conda update jupyter 
  4. 下载Apache Spark并编译它,或者下载并解压缩Apache Spark 1.5.1 + Hadoop 2.6 。

     ilovejobs@mymac:~$ cd Downloads ilovejobs@mymac:~/Downloads$ wget http://www.apache.org/dyn/closer.lua/spark/spark-1.5.1/spark-1.5.1-bin-hadoop2.6.tgz 
  5. 在你的家里(即)创build一个Apps文件夹:

     ilovejobs@mymac:~/Downloads$ mkdir ~/Apps 
  6. 将未压缩的文件夹spark-1.5.1移动到~/Apps目录。

     ilovejobs@mymac:~/Downloads$ mv spark-1.5.1/ ~/Apps 
  7. 移动到~/Apps目录并确认火花在那里。

     ilovejobs@mymac:~/Downloads$ cd ~/Apps ilovejobs@mymac:~/Apps$ ls -l drwxr-xr-x ?? ilovejobs ilovejobs 4096 ?? ?? ??:?? spark-1.5.1 
  8. 这是第一个棘手的部分 。 将火花二进制文件添加到$PATH

     ilovejobs@mymac:~/Apps$ cd ilovejobs@mymac:~$ echo "export $HOME/apps/spark/bin:$PATH" >> .profile 
  9. 这是第二个棘手的部分 。 还添加这个环境variables:

     ilovejobs@mymac:~$ echo "export PYSPARK_DRIVER_PYTHON=ipython" >> .profile ilovejobs@mymac:~$ echo "export PYSPARK_DRIVER_PYTHON_OPTS='notebook' pyspark" >> .profile 
  10. 获取configuration文件以使这些variables可用于此terminal

     ilovejobs@mymac:~$ source .profile 
  11. 创build一个~/notebooks目录。

     ilovejobs@mymac:~$ mkdir notebooks 
  12. 移动到~/notebooks并运行pyspark:

     ilovejobs@mymac:~$ cd notebooks ilovejobs@mymac:~/notebooks$ pyspark 

请注意,您可以将这些variables添加到位于您家中的.bashrc现在很高兴,你应该能够运行一个pyspark内核的jupyter(它会显示为python 2,但它会使用火花)

首先,确保你的机器中有一个火花环境。

然后,通过pip安装python模块findspark

 $ sudo pip install findspark 

然后在python shell中:

 import findspark findspark.init() import pyspark sc = pyspark.SparkContext(appName="myAppName") 

现在你可以用python shell(或者ipython)中的pyspark来做你想做的事情。

实际上,在我看来,在jupyter中使用spark内核是最简单的方法

仅供参考,您现在可以通过https://github.com/ibm-et/spark-kernel在Jupyter之上运行带有Spark的Scala,PySpark,SparkR和SQL。; 新的解释器从pull请求https://github.com/ibm-et/spark-kernel/pull/146添加(并标记为实验)。;

请参阅语言支持 wiki页面以获取更多信息。

星火与IPython / Jupyter笔记本是伟大的,我很高兴阿尔贝托能够帮助你得到它的工作。

作为参考,也值得考虑2个很好的替代scheme,可以很容易地集成到一个YARN集群中(如果需要的话)。

Spark笔记本: https : //github.com/andypetrella/spark-notebook

Apache Zeppelin: https : //zeppelin.incubator.apache.org/

在撰写本文时,Spark Notebook(v0.6.1)更加成熟,您可以在这里预先安装Spark和Hadoop版本: http ://spark-notebook.io/

Zeppelin(v0.5)看起来很有希望,但是现在不提供像Spark Notebook或IPython一样多的function。