读取spark数据帧并说通过Jupyter笔记本将其持久化以及另一个同时写入s3存储桶的进程是否会出现问题?
说
我读取了一个数据框,例如:
s3 = spark.read.parquet('s3://path/to/table')
然后在笔记本上进行处理。
同时我在某个时候通过不同的过程将相同的s3存储桶写出来,例如
system('s3-dist-cp --src --dest s3://path/to/table)
这会证明是一个问题吗?我可以弄乱读取/数据帧,但我不想阻止将其写入存储桶。
答案 0 :(得分:2)
这将导致您阅读的第一个DF上的任何操作均发生FNF异常。
s3 = spark.read.parquet('s3://path/to/table')
上面涉及的第一个spark作业是列出叶子文件和目录。由于存在另一个正在写入/重写数据的过程,因此路径会过时。
此外,还应考虑S3的最终一致性行为。