Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在AWS EMR v4.0.0上使用Pyspark配置Ipython/Jupyter笔记本电脑_Python_Amazon Web Services_Ipython_Pyspark - Fatal编程技术网

在AWS EMR v4.0.0上使用Pyspark配置Ipython/Jupyter笔记本电脑

在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

我正在尝试将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
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}"
 ]
}