首页 > 解决方案 > BigQuery 取代了我的大部分 Spark 工作,我错过了什么吗?

问题描述

多年来,我一直在使用本地集群开发 Spark 作业,我们的团队最近迁移到了 Google Cloud Platform,这使我们能够利用 BigQuery 等的强大功能。

问题是,我现在经常发现自己在 SQL 中编写处理步骤比在 PySpark 中更多,因为它是:

最后,我只在有无法使用 SQL 表达的事情时才使用 Spark。

需要明确的是,我的工作流程通常是这样的:

我错过了什么吗?以这种方式使用 BigQuery 而不是 Spark 有什么缺点吗?

谢谢

标签: sqlapache-sparkapache-spark-sqlgoogle-bigquerybigdata

解决方案


我可以看到的一个缺点是 Hadoop 集群创建和完成作业所需的额外时间。通过向 BigQuery 发出直接请求,可以减少额外的时间。

如果您的任务需要并行处理,我建议使用 Spark,但如果您的应用程序主要用于访问 BQ,您可能需要使用 BQ 客户端库并分离当前任务:

  • BigQuery 客户端库。它们经过优化以连接到 BQ。这是一个快速入门,您可以使用不同的编程语言,如 python 或 java 等。

  • 火花作业。如果您仍需要在 Spark 中执行转换并需要从 BQ 读取数据,您可以使用Dataproc-BQ 连接器。虽然此连接器默认安装在 Dataproc 中,但您可以将其安装在本地,以便继续使用 BQ 数据运行 SparkML 作业。以防万一,您可能需要考虑使用一些 GCP 服务,例如 AutoML、BQ ML、AI Platform Notebooks 等,它们是机器学习和 AI 的专门服务。


推荐阅读