如何安排BigQuery和Dataproc进行机器学习

时间:2016-10-30 21:37:13

标签: scheduled-tasks google-bigquery pyspark scheduler google-cloud-dataproc

我想在数据交换机上安排我的火车模型,我需要:

1 /请求Bigquery并加载我的数据集的BQ表 2 /创建我的数据业务集群 3 /启动我的pyspark工作 4 /删除我的群集

我想为此创建一个cron,我怎么能做到这一点?

谢谢

1 个答案:

答案 0 :(得分:2)

这里有一些不同的选项,取决于您想要获得的复杂程度或深度。

使用非常简单

如果你想以尽可能简单的方式运行,你可能会创建一个只调用Cloud SDK命令的shell脚本,例如:

#!/bin/sh
CREATION_OUTPUT=`gcloud dataproc clusters create ...`
...
DELETION_OUTPUT=`gcloud dataproc clusters delete...`

如果你想安排它,最简单的方法(恕我直言,每个人可能会有不同的意见)是让它在f1-micro实例上运行。总费用可能约为$5/month

更高级

您可能希望使用shell +变量,因此您无需对所有内容进行硬编码。例如,您可以根据时间或其他值创建具有唯一ID的群集。这可能对您有用,特别是如果您想要经常创建群集

<强>可是...

这两种方法都远非安全。例如,如果出现错误,您的整个设置可能会进入并保持不良状态。您可能不知道发生了什么事情,也不会捕获详细的调试信息。

更好的解决方案

使用API​​需要更多的工作,但可能是一个更好的整体解决方案,特别是如果你想重复运行或有错误处理。在这种情况下,我可能会使用Python快速编写脚本来与API进行通信。这将让我捕获错误,处理它们,并可能恢复(如果你愿意,也可以通知。)

以下是我们与Python一起使用的API的一些示例:

这些的指示分别在这里: