【发布时间】:2019-09-25 03:11:05
【问题描述】:
多年来,我一直在使用本地集群开发 Spark 作业,我们的团队最近迁移到了 Google Cloud Platform,让我们能够利用 BigQuery 等的强大功能。
问题是,我现在经常发现自己在 SQL 中编写处理步骤的次数比在 PySpark 中要多,因为它是:
- 更容易推理(不那么冗长)
- 更易于维护(SQL 与 scala/python 代码)
- 如果需要,您可以在 GUI 上轻松运行它
- 快速,无需真正考虑分区、缓存等...
最后,我只在有无法使用 SQL 表达的事情时才使用 Spark。
要清楚,我的工作流程通常是这样的:
- 预处理(以前在 Spark 中,现在在 SQL 中)
- 特征工程(以前在 Spark 中,现在主要在 SQL 中)
- 机器学习模型和预测 (Spark ML)
我错过了什么吗? 以这种方式使用 BigQuery 而不是 Spark 有什么缺点吗?
谢谢
【问题讨论】:
-
不是我的意见,但你是在征求意见,这就是我投票结束的原因。
-
我不是在寻找意见,我在寻找使用 BigQuery 而不是 Spark 的优缺点,也许有些事情我没有考虑,也许这个选择有缺点我我不知道
-
我认为没有缺点。也许在版本控制系统中保持 spark 可能比 SQL 更容易,但这也可能是一个意见/选择问题。
-
或许你可以试试看BQML能不能替代Spark ML :)
-
这是一个很好的问题,网上资料不多,希望更多的人在这里分享他们的知识。 @CARREAUClément 你在使用气流吗?我正在寻找重新分级 Airflow/CloudComposer 和 BQ_SQL/DataProc 或 DataFlow(BEAM) 的最佳实践和良好比较
标签: sql apache-spark apache-spark-sql google-bigquery bigdata