总体而言:我们的代码从 Snowflake(=数据仓库)获取数据,使用 Spark 在 Python 中对其执行某些转换,然后将其推送回 Snowflake。
当我在计算机上执行此任务时,一切进展顺利:#inputrows = #outputrows。当有人在计算机上执行该操作时,数据就会丢失。丢失的数据是随机的:每次此人执行任务时,都会返回不同的行和不同数量的行。此外,在 EMR 上执行任务不会返回正确的行数。我们执行完全相同的 Spark-submit 命令。
我们认为它不在“写入雪花”部分,因为在counts
写入雪花之前,在代码中执行已经给出了错误的行数。
使用 Spark 时是否有可能丢失数据?
我已经与Airflow合作了一段时间,这是由一位同事建立的。最近,我遇到了几个错误,这需要我进一步了解如何解决Airflow中的某些问题。
我确实了解这3个流程是什么,我只是不了解运行它们时发生的潜在事件。当我运行其中一个命令时会发生什么?之后我可以在某处看到它们正在运行吗?如果我运行这些命令之一,这是否会覆盖旧的Web服务器/调度程序/工作器或添加一个新命令?
而且,例如,如果我运行airflow webserver
,屏幕上会显示一些正在发生的事情。我可以简单地通过按CTRL + C摆脱这一点吗?因为当我这样做时,它会说Worker exiting
和Shutting down: Master
。这是否意味着我要关闭所有内容?那我该如何离开网络服务器屏幕呢?