如何为从 GCS 读取 CSV 文件的 Cloud Dataproc 编译 Spark 作业?

How to compile a Spark job for Cloud Dataproc that reads CSV files from GCS?

我正在尝试使用 Google Cloud Dataproc 对存储在 GCS 中的 CSV 文件进行 运行 Spark ML 作业。但是,我无法弄清楚如何编译用于提交的胖 JAR。

我可以从文档中得知云数据处理节点已经预先安装了连接器,但我不知道如何将连接器添加到我的 SBT 配置中,因此我可以在本地开发和编译一个胖 JAR 以提交给数据处理。是否有一行我可以添加到我的 build.sbt 以便我可以在本地访问连接器(即它会编译)?并在必要时标记为"provided",以免与工作节点上预安装的版本冲突?

如有任何指点或示例,我们将不胜感激。

TIA!

要在 build.sbt 中明确引用连接器:

libraryDependencies += "com.google.cloud.bigdataoss" % "gcs-connector" % "1.6.1-hadoop2" % "provided"

请注意,这是库的无阴影版本。在 Dataproc 集群上,提供了阴影工件,可以在 Maven Central 上使用 'shaded' 分类器找到此工件:

libraryDependencies += "com.google.cloud.bigdataoss" % "gcs-connector" % "1.6.1-hadoop2" % "provided" classifier "shaded"

对于开发,您可以仅使用 Hadoop FileSystem 接口并在部署到 Dataproc 时使用 'gs://[bucket]/[path/to/object]' 形式的路径而不是本地路径。