总体:我们的代码从Snowflake(=数据仓库)获取数据,使用Spark在Python中对其执行某些转换,然后将其推回Snowflake。
当我在计算机上执行此任务时,一切顺利:#inputrows = #outputrows。当有人在计算机上执行该操作时,数据将丢失。丢失的数据是随机的:每次此人执行任务时,都会同时返回不同的行,并返回不同数量的行。在EMR上执行任务也不会返回正确的行数。我们执行完全相同的spark-submit命令。
我们相信它不是“写入雪花”部分,因为在代码中执行counts
在写入Snowflake之前已经给出了错误的行数。
使用Spark时是否有可能丢失数据?