如何按日期对数据进行分组并根据Spark中的日期输出到不同的文件夹?

时间:2018-01-22 16:44:59

标签: date apache-spark dataframe

我有一个处理日志文件的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-022018-01-03

我怎样才能做到这一点?

0 个答案:

没有答案