我有一个处理日志文件的Spark应用程序。但是,我想根据文件的日期保存到不同的文件夹。我相信我可以一行一行但这样效率低吗?我想我可以按查询运行一个组,只按日期分组并输出到文件夹。我该怎么做?
这是我现在所拥有的基于当前日期
的内容jsonRows.foreachRDD(r => {
val parsedFormat = new SimpleDateFormat("yyyy-MM-dd/")
val parsedDate = parsedFormat.format(new java.util.Date())
val OutputPath = destinationBucket + "/parsed_logs/orc/dt=" + parsedDate
val jsonDf = sqlSession.read.schema(Schema.schema).json(r)
val writer = jsonDf.write.mode("append").format("orc").option("compression", "zlib")
if (environment.equals("local")) {
writer.save("/tmp/sparrow")
} else {
writer.save(OutputPath)
}
})
这是数据框的样本
_ts
2018-01-02:10:10:10
2018-01-02:10:10:10
2018-01-03:10:10:10
我想按日期分组,所以我会有两个小组
2018-01-02:10:10:10
2018-01-02:10:10:10
和
2018-01-03:02:10:10:10
我想将它们分别保存到两个文件夹
2018-01-02
和2018-01-03
我怎样才能做到这一点?