数据未使用pyspark写入S3

时间:2019-05-17 13:48:46

标签: python apache-spark amazon-s3 pyspark pyspark-sql

我正在尝试使用s3csv格式将数据写入pyspark。我的代码在执行时会为一个表生成多个分区。

在我的python代码中,我具有多个函数(在这种情况下,请参见5),并且在每个函数中,我都使用Spark sql创建一个数据帧,该数据帧将作为表内的一个分区写入s3(仅一个{{每个分区1}}个文件)。在写到csv之前,我要在日志文件中捕获每个数据框值。

发生的事情是,即使该分区是在s3中的我的表下创建的,并且即使相应的数据帧已正确创建并且也已记录到我的日志文件中,该函数中的任何一个函数也不会将期望的数据写入s3中。 其他四个功能已将数据作为4个单独的csv文件(每个分区一个)正确地写入了各自的分区。

spark中是否有任何选项,我可以使spark检查s3写入是否成功完成,然后仅向前移动,否则应重试写入操作?

由于我正在使用的模式是mode(“ overwrite”),我尝试过的是,我尝试重新运行我的作业,以便检查下次丢失的分区是否正确写入,并且它确实正确写入了重试后。

但是第二天也会发生同样的事情。

这是我的s3写入每个单独函数的方式:

s3

期望在执行时,每当我运行python代码时,这5个分区中的每个分区应具有5个csv文件(每个1个)

如果在分区s3的任何位置中没有写入csv文件,则可以: 1.应该抛出任何异常,并且我的执行应该停止。 2.Spark应尝试检查s3分区以确认csv文件已创建,否则应尝试再次s3写入。

0 个答案:

没有答案