链接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,事实上它比你想象的要简单:
- 为OSX安装anaconda 。
-
安装jupyter在terminal中input下一行点击我获取更多信息 。
ilovejobs@mymac:~$ conda install jupyter
-
更新jupyter以防万一。
ilovejobs@mymac:~$ conda update jupyter
-
下载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
-
在你的家里(即)创build一个
Apps
文件夹:ilovejobs@mymac:~/Downloads$ mkdir ~/Apps
-
将未压缩的文件夹
spark-1.5.1
移动到~/Apps
目录。ilovejobs@mymac:~/Downloads$ mv spark-1.5.1/ ~/Apps
-
移动到
~/Apps
目录并确认火花在那里。ilovejobs@mymac:~/Downloads$ cd ~/Apps ilovejobs@mymac:~/Apps$ ls -l drwxr-xr-x ?? ilovejobs ilovejobs 4096 ?? ?? ??:?? spark-1.5.1
-
这是第一个棘手的部分 。 将火花二进制文件添加到
$PATH
:ilovejobs@mymac:~/Apps$ cd ilovejobs@mymac:~$ echo "export $HOME/apps/spark/bin:$PATH" >> .profile
-
这是第二个棘手的部分 。 还添加这个环境variables:
ilovejobs@mymac:~$ echo "export PYSPARK_DRIVER_PYTHON=ipython" >> .profile ilovejobs@mymac:~$ echo "export PYSPARK_DRIVER_PYTHON_OPTS='notebook' pyspark" >> .profile
-
获取configuration文件以使这些variables可用于此terminal
ilovejobs@mymac:~$ source .profile
-
创build一个
~/notebooks
目录。ilovejobs@mymac:~$ mkdir notebooks
-
移动到
~/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。