如何在GCP中将jar依赖项添加到dataproc集群?

时间:2019-11-08 15:41:48

标签: maven google-cloud-platform pyspark google-cloud-dataproc

尤其是如何添加spark-bigquery-connector,以便可以从dataproc的Jupyter Web界面中查询数据?

主要链接: -https://github.com/GoogleCloudPlatform/spark-bigquery-connector

目标: 为了能够运行以下内容:

s = spark.read.bigquery("transactions")

s = (s
    .where("quantity" >= 0)
    .groupBy(f.col('date'))
    .agg({'sales_amt':'sum'})
     )

df = s.toPandas()

1 个答案:

答案 0 :(得分:2)

基本上有两种方法可以实现您想要的:

1 创建集群时: 您将必须创建一个初始化脚本(参数--initialization-actions)来安装依赖项。 https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/init-actions

2 创建集群时: 您可以指定创建集群时要使用的自定义映像。 https://cloud.google.com/dataproc/docs/guides/dataproc-images

3 在作业运行时: 您可以使用--jars参数在运行作业时传递其他jar文件: https://cloud.google.com/sdk/gcloud/reference/beta/dataproc/jobs/submit/pyspark#--jars

我建议(3)如果您要运行一个简单的.jar依赖项,例如scoop.jar

我建议(1)如果您有很多要在运行作业之前安装的软件包。它给您更多的控制权。

选项(2)绝对可以完全控制您,但是您必须自己维护映像(应用补丁,升级等),因此除非您确实需要,否则我不建议这样做。