我可以使用https://cloud.google.com/dataproc/tutorials/jupyter-notebook成功地使用 pyspark 运行 jupyter
我的问题是 - 如果我必须将包添加到 pyspark(如 spark-csv 或 graphframes)并通过笔记本使用它们,那么最佳实践是什么?我可以使用 --packages 选项将包添加到新的 pyspark 作业中,但是如何将新的 pyspark 上下文连接到笔记本?
我可以使用https://cloud.google.com/dataproc/tutorials/jupyter-notebook成功地使用 pyspark 运行 jupyter
我的问题是 - 如果我必须将包添加到 pyspark(如 spark-csv 或 graphframes)并通过笔记本使用它们,那么最佳实践是什么?我可以使用 --packages 选项将包添加到新的 pyspark 作业中,但是如何将新的 pyspark 上下文连接到笔记本?
为了让 notebook 正常工作,您真的希望 notebook 设置能够自行选择正确的包。由于您链接的初始化操作可确保 Jupyter 将使用集群的已配置 Spark 目录,从而获取所有必要的 YARN/filesystem/lib 配置,因此最好的方法是在集群创建时添加属性,而不是工作提交时间:
gcloud dataproc clusters create \
--properties spark:spark.jars.packages=com.databricks:spark-csv_2.11:1.2.0
根据这个 StackOverflow 错误,设置spark-defaults.conf
属性spark.jars.packages
是指定--packages
选项的更便携等价物,因为--packages
它只是 spark-shell/spark-submit/pyspark 包装器中的语法糖,它spark.jars.packages
无论如何都会设置配置条目。