有时,使用我在AWS上的spark程序,如果我将数据帧写入S3,然后将其读回,我会收到类似的错误
Caused by: java.io.FileNotFoundException:
No such file or directory
's3://mypath/part-00000-f788e0f4-2498-4230-85b0-30cab97fc2ea-c000.snappy.parquet'
但是当我看一下时,文件显然就在那里。之前我碰到过这个并通过在写入和回读之间进行3秒钟的休眠来解决它。有谁知道这里发生了什么?我认为在文件系统方面,将s3视为网络文件系统,是否有一些方法可以在我回读之前同步我对文件系统的看法?也许我应该睡3秒,然后执行aws s3 ls s3://mypath
命令?
这是因为S3的最终一致性。这是一个非常普遍的问题。
我可以想出两种方法来解决这个问题 -