DataProc:Jupyter Pyspark笔记本电脑无法导入GraphFrames软件包



在dataproc spark群集中,graphframe软件包可在Spark-Shell中找到,但在Jupyter Pyspark Notebook中不可用。

pyspark内核配置:

PACKAGES_ARG='--packages graphframes:graphframes:0.2.0-spark2.0-s_2.11'

以下是初始化群集的CMD:

gcloud dataproc clusters create my-dataproc-cluster --properties spark.jars.packages=com.databricks:graphframes:graphframes:0.2.0-spark2.0-s_2.11 --metadata "JUPYTER_PORT=8124,INIT_ACTIONS_REPO=https://github.com/{xyz}/dataproc-initialization-actions.git" --initialization-actions  gs://dataproc-initialization-actions/jupyter/jupyter.sh --num-workers 2 --properties spark:spark.executorEnv.PYTHONHASHSEED=0,spark:spark.yarn.am.memory=1024m     --worker-machine-type=n1-standard-4  --master-machine-type=n1-standard-4

这是一个带有火花壳和纱线的旧错误,我认为是在Spark-15782中固定的,但显然错过了这种情况。

建议的解决方法正在添加

import os
sc.addPyFile(os.path.expanduser('~/.ivy2/jars/graphframes_graphframes-0.2.0-spark2.0-s_2.11.jar'))

在您导入之前。

我找到了另一种方法来添加jupyter笔记本上有效的软件包:

spark = SparkSession.builder 
.appName("Python Spark SQL")     
.config("spark.jars.packages", "graphframes:graphframes:0.5.0-spark2.1-s_2.11") 
.getOrCreate()

如果您可以使用EMR笔记本电脑,则可以在笔记本中使用install_pypi_package()API安装其他Python库/依赖项。这些依赖项(包括任何执行器节点上的依赖性依赖项)。

更多详细信息:https://docs.aws.amazon.com/emr/latest/managementguide/emr-managed-notebooks-notebooks-scoped-libraries.html

最简单的方法是使用pyspark和graphframes启动jupyter,是从pyspark启动jupyter,并附上附加的软件包

只需打开终端并设置两个环境变量,然后使用GraphFrames软件包

启动pyspark
export PYSPARK_DRIVER_PYTHON=jupyter
export PYSPARK_DRIVER_PYTHON_OPTS=notebook
pyspark --packages graphframes:graphframes:0.6.0-spark2.3-s_2.11

的优点也是,如果您以后要通过spark-submit运行代码,则可以使用相同的start命令

相关内容

  • 没有找到相关文章

最新更新