在AWS EMR v4.0.0上使用Pyspark配置Ipython/Jupyter笔记本电脑
我正在尝试将IPython笔记本与Apache Spark 1.4.0结合使用。我已经按照下面的2个教程设置了我的配置 及 完成配置后,以下是相关文件中的几个代码: 1.ipython_notebook_config.py在AWS EMR v4.0.0上使用Pyspark配置Ipython/Jupyter笔记本电脑,python,amazon-web-services,ipython,pyspark,Python,Amazon Web Services,Ipython,Pyspark,我正在尝试将IPython笔记本与Apache Spark 1.4.0结合使用。我已经按照下面的2个教程设置了我的配置 及 完成配置后,以下是相关文件中的几个代码: 1.ipython_notebook_config.py c=get_config() c.NotebookApp.ip = '*' c.NotebookApp.open_browser =False c.NotebookApp.port = 8193 2.00-pyspark-setup.py import os impor
c=get_config()
c.NotebookApp.ip = '*'
c.NotebookApp.open_browser =False
c.NotebookApp.port = 8193
2.00-pyspark-setup.py
import os
import sys
spark_home = os.environ.get('SPARK_HOME', None)
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'))
我还将以下两行添加到我的.bash_配置文件中:
export SPARK_HOME='home/hadoop/sparl'
source ~/.bash_profile
然而,当我跑的时候
ipython notebook --profile=pyspark
它显示消息:无法识别的别名'--profile=pyspark',可能没有效果
笔记本似乎没有成功配置pyspark
有人知道怎么解决吗?多谢各位
以下是一些软件版本
ipython/Jupyter:4.0.0
spark 1.4.0
AWS电子病历:4.0.0
python:2.7.9
顺便说一句,我已经读了以下内容,但它不起作用
我在指定--profile**kwarg时遇到了同样的问题。这似乎是新版本的一个普遍问题,与Spark无关。如果您降级到ipython 3.2.1,您将能够再次指定配置文件。Jupyter笔记本电脑没有配置文件的概念(就像ipython一样)。建议使用不同配置启动,例如:
JUPTYER_CONFIG_DIR=~/alternative_jupyter_config_dir jupyter notebook
另请参见,您将在其中找到一条说明。我已经尝试了很多方法来解决这个4.0版本的问题,最后我决定安装3.2.3版本。伊皮顿大学:
conda install 'ipython<4'
conda install'ipython正如人们评论的那样,在Jupyter中,您不需要配置文件。您所需要做的就是导出jupyter的变量以找到您的spark安装(我使用zsh,但bash也是如此)
在pyspark_SUBMIT_ARGS
我发现有用但不完全准确
我的配置是本地的,但是如果您使用PYSPARK\u SUBMIT\u ARGS
来配置您需要的配置,那么我的配置应该可以工作。这对我来说很有效
使用以下内容更新~/.bashrc:
export SPARK_HOME="<your location of spark>"
export PYSPARK_SUBMIT_ARGS="--master local[2] pyspark-shell"
然后在~/.ipython/profile\u pyspark/startup/00 pyspark setup.py
中创建并添加以下行:
import os
import sys
spark_home = os.environ.get('SPARK_HOME', None)
sys.path.insert(0, spark_home + "/python")
sys.path.insert(0, os.path.join(spark_home, 'python/lib/py4j-0.9-src.zip'))
filename = os.path.join(spark_home, 'python/pyspark/shell.py')
exec(compile(open(filename, "rb").read(), filename, 'exec'))
spark_release_file = spark_home + "/RELEASE"
if os.path.exists(spark_release_file) and "Spark 1.6" in open(spark_release_file).read():
pyspark_submit_args = os.environ.get("PYSPARK_SUBMIT_ARGS", "")
(根据您的情况更新py4j和spark的版本)
然后mkdir-p~/.ipython/kernels/pyspark
,然后在文件~/.ipython/kernels/pyspark/kernel.json
{
"display_name": "pySpark (Spark 1.6.1)",
"language": "python",
"argv": [
"/usr/bin/python",
"-m",
"IPython.kernel",
"--profile=pyspark",
"-f",
"{connection_file}"
]
}
现在,您应该在jupyter的新笔记本选项下看到这个内核pySpark(Spark 1.6.1)。您可以通过执行sc
进行测试,应该可以看到您的spark上下文。听起来pyspark配置文件不存在。文件夹~/.ipython/profile\u pyspark
存在吗?您好,谢谢您的评论。该配置文件不存在。奇怪的是,当我将export-SPARK\u HOME='usr/lib/SPARK'export-Ipython=1 export-PYSPARK\u-PYTHON=/usr/bin/python2.7 export-PYSPARK\u-DRIVER\u-PYTHON=ipython3 export-PYSPARK\u-DRIVER\u-PYTHON=“notebook”添加到.bashrc并将PYSPARK\u-PYTHON=/usr/bin/python2.7 export-PYSPARK\u-DRIVER\u-PYTHON=ipython3\n添加到SPARK-env.sh时,一切都!请参考此答案
import os
import sys
spark_home = os.environ.get('SPARK_HOME', None)
sys.path.insert(0, spark_home + "/python")
sys.path.insert(0, os.path.join(spark_home, 'python/lib/py4j-0.9-src.zip'))
filename = os.path.join(spark_home, 'python/pyspark/shell.py')
exec(compile(open(filename, "rb").read(), filename, 'exec'))
spark_release_file = spark_home + "/RELEASE"
if os.path.exists(spark_release_file) and "Spark 1.6" in open(spark_release_file).read():
pyspark_submit_args = os.environ.get("PYSPARK_SUBMIT_ARGS", "")
{
"display_name": "pySpark (Spark 1.6.1)",
"language": "python",
"argv": [
"/usr/bin/python",
"-m",
"IPython.kernel",
"--profile=pyspark",
"-f",
"{connection_file}"
]
}