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

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

我想在 dataproc 上安排我的火车模型,我需要:

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

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

谢谢

最佳答案

这里有一些不同的选项供您选择,具体取决于您想要了解的复杂程度或深度。

使用非常简单

如果您想以尽可能简单的方式运行,您可能可以创建一个简单调用 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 交互。这将使我能够捕获错误、处理错误,并可能恢复(如果需要,还可以通知。)

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

这些的说明分别如下:

关于scheduled-tasks - 如何安排 BigQuery 和 Dataproc 进行机器学习,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40333879/

相关文章:

java - Spring中@Scheduled方法中的Thread.sleep

c# - 作为计划任务运行时,用户配置文件路径返回默认值

powershell - 任务计划程序 PowerShell 启动进程未运行

python - 如何在pyspark中将spark数据框保存为没有行的文本文件?

apache-spark - PySpark3 将 yyyyMMddhhmmss 解析为 TimestampType() 时没有属性 'tzinfo' 错误

javascript - 需要 javascript 使按钮在一天中的特定时间出现/消失

google-bigquery - 在 Big Query Web 界面上使用表装饰器

google-bigquery - 大查询 : Deleting Duplicates in Partitioned Table

sql - 无法从表格中获取正确的日期

apache-spark - conda 在 Windows 10 上安装 PySpark 后出现问题