在不使用 Dataproc 的情况下将 GCP 与 PySpark 连接

Posted

技术标签:

【中文标题】在不使用 Dataproc 的情况下将 GCP 与 PySpark 连接【英文标题】:Connect GCP with PySpark without using Dataproc 【发布时间】:2019-10-31 15:54:19 【问题描述】:

我正在尝试将 GCP(Google Big Query)与 Spark(使用 pyspark)连接,而不使用 Dataproc(内部自托管 Spark),如 google 官方文档中所列,它仅适用于 Dataproc https://cloud.google.com/dataproc/docs/tutorials/bigquery-connector-spark-example?有什么建议吗?注意:我在 Docker 上的 Spark 和 Hadoop 设置。谢谢

【问题讨论】:

【参考方案1】:

请查看project page on GitHub - 它详细说明了如何从代码中引用 GCP 凭据。

简而言之,你应该运行

spark.read.format("bigquery").option("credentialsFile", "</path/to/key/file>").option("table", "<table>").load()

如果需要,请参考here 了解如何创建 json 凭证文件。

【讨论】:

火花。是 SparkSession、SparkContext 还是 SQLContext? SparkSession。 SparkContext 的约定是 sc 我可以提供一个完整的示例代码来说明如何开始和调用数据吗?谢谢 github.com/GoogleCloudPlatform/spark-bigquery-connector/blob/…【参考方案2】:

BigQuery 连接器在 jar 文件中作为 spark-bigquery-connector 提供,它是公开可用的。然后你可以:

将其添加到本地/自托管集群的类路径中,以便您的应用程序可以访问 BigQuery API。 仅将连接器添加到您的 Spark 应用程序,例如使用 --jars 选项。关于这一点,还有其他一些可能会影响您的应用的可能性,要了解更多信息,请查看Add jars to a Spark Job - spark-submit

将 jar 添加到类路径后,您可以检查 two bigquery connector examples,其中一个已由 @David Rabinowitz 提供

【讨论】:

以上是关于在不使用 Dataproc 的情况下将 GCP 与 PySpark 连接的主要内容,如果未能解决你的问题,请参考以下文章

YARN 上 GCP Dataproc 上的自动缩放指标

在不使用 Selenium 的情况下将 ChromeDriver 与 WebDriverIO 一起使用

在不使用 PHP 的情况下将 MySql 与 Android 连接

如何在不使用界面生成器的情况下将视图与控制器分离

带有presto的GCP dataproc - 有没有办法使用pyhive通过python远程运行查询?

如何在不使用密钥的情况下将 GitHub 操作与 AWS 部署连接?