在启动 Google DataProc 集群以与 Jupyter 笔记本一起使用时,如何包含额外的 jar?
How can I include additional jars when starting a Google DataProc cluster to use with Jupyter notebooks?
我正在按照说明启动 Google DataProc 集群,并使用初始化脚本启动 jupyter notebook。
如何在 Jupyter 笔记本(尤其是 pyspark)中生成的 SparkContext 中包含额外的 JAR 文件(例如 spark-xml)?
答案稍微取决于您要加载的 jar。例如,您可以在创建集群时将 spark-xml 与以下内容一起使用:
$ gcloud dataproc clusters create [cluster-name] \
--zone [zone] \
--initialization-actions \
gs://dataproc-initialization-actions/jupyter/jupyter.sh \
--properties spark:spark.jars.packages=com.databricks:spark-xml_2.11:0.4.1
要指定多个 Maven 坐标,您需要将 gcloud 字典分隔符从 ',' 换成其他字符(因为我们需要使用它来分隔要安装的包):
$ gcloud dataproc clusters create [cluster-name] \
--zone [zone] \
--initialization-actions \
gs://dataproc-initialization-actions/jupyter/jupyter.sh \
--properties=^#^spark:spark.jars.packages=artifact1,artifact2,artifact3
有关转义字符如何更改的详细信息,请参阅 gcloud:
$ gcloud help topic escaping
我正在按照说明启动 Google DataProc 集群,并使用初始化脚本启动 jupyter notebook。
如何在 Jupyter 笔记本(尤其是 pyspark)中生成的 SparkContext 中包含额外的 JAR 文件(例如 spark-xml)?
答案稍微取决于您要加载的 jar。例如,您可以在创建集群时将 spark-xml 与以下内容一起使用:
$ gcloud dataproc clusters create [cluster-name] \
--zone [zone] \
--initialization-actions \
gs://dataproc-initialization-actions/jupyter/jupyter.sh \
--properties spark:spark.jars.packages=com.databricks:spark-xml_2.11:0.4.1
要指定多个 Maven 坐标,您需要将 gcloud 字典分隔符从 ',' 换成其他字符(因为我们需要使用它来分隔要安装的包):
$ gcloud dataproc clusters create [cluster-name] \
--zone [zone] \
--initialization-actions \
gs://dataproc-initialization-actions/jupyter/jupyter.sh \
--properties=^#^spark:spark.jars.packages=artifact1,artifact2,artifact3
有关转义字符如何更改的详细信息,请参阅 gcloud:
$ gcloud help topic escaping