在不使用 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 连接的主要内容,如果未能解决你的问题,请参考以下文章
在不使用 Selenium 的情况下将 ChromeDriver 与 WebDriverIO 一起使用
在不使用 PHP 的情况下将 MySql 与 Android 连接