【发布时间】:2020-05-20 08:38:25
【问题描述】:
我有一个用例,我在 orc 文件中将数据从 Mongodb 推送到 HDFS,该文件每隔 1 天运行一次,并将数据附加到 hdfs 中存在的 orc 文件中。
现在我担心的是,如果在写入 orc 文件时,作业会以某种方式失败或停止。考虑到一些数据已经写入 orc 文件,我应该如何处理这种情况。我想避免在 orc 文件中重复。
用于写入 orc 文件格式的片段 -
val df = sparkSession
.read
.mongo(ReadConfig(Map("database" -> "dbname", "collection" -> "tableName")))
.filter($"insertdatetime" >= fromDateTime && $"insertdatetime" <= toDateTime)
df.write
.mode(SaveMode.Append)
.format("orc")
.save(/path_to_orc_file_on_hdfs)
我不想检查完整的 RDD,因为这将是非常昂贵的操作。还, 我不想创建多个 orc 文件。要求仅维护单个文件。
我应该尝试任何其他解决方案或方法吗?
【问题讨论】:
标签: apache-spark apache-spark-sql orc spark-checkpoint