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

时间:2017-11-22 19:23:11

标签: apache-spark google-cloud-platform google-cloud-storage google-cloud-dataproc

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

我可以从文档中看出云数据空间节点已预先安装了连接器,但我不知道如何将连接器添加到我的SBT配置中,因此我可以在本地开发和编译胖JAR以提交给dataproc。有没有我可以添加到build.sbt的行,所以我可以在本地访问连接器(即它会编译)?如果需要,标记为“提供”,以便它不与工作节点上预安装的版本冲突?

任何指针或示例都会受到超级赞赏。

TIA!

1 个答案:

答案 0 :(得分:1)

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

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

请注意,这是库的非阴影版本。在Dataproc集群上,提供了阴影工件,并且可以使用“阴影”分类器在maven中心找到此工件:

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

对于开发,您可以通过使用Hadoop FileSystem接口以及使用“gs:// [bucket] / [path / to / object]'形式的路径而不是本地路径部署到Dataproc时侥幸成功路径。