flink streaming在时间窗口上创建文件(csv或文本)

时间:2017-05-25 11:35:26

标签: apache-kafka apache-flink flink-streaming flink-cep

我是陌生人 我有这样的变换假设

val supportTask= customSource

  .map( line => line.split(","))
  .map( line => SupportTaskNew(line(0)toInt,line(1).toString,line(2)toString,line(3)toLong,line(4).toString,line(5)toInt,line(6)toInt))
  .filter(_ => true) //todo put sent date condition
  .map( line => Count(1))
  .keyBy(0)
  .timeWindow(Time.seconds(20)) //todo for time being 10 seconds, actuals 30 min
 .sum(0)  

现在我想为每个20秒的时间窗创建文件

supportTask.writeAsText(("D://myfile_"+Calendar.getInstance().get(Calendar.SECOND)),WriteMode.NO_OVERWRITE).setParallelism(1)

我提供了文件名+秒,以便每次创建附加秒数的文件时。

但是这里只创建了一个文件,我想为每20秒窗口创建一个新文件,我该怎么做?

1 个答案:

答案 0 :(得分:2)

也许您可以使用Bucketing File Sink和自定义Bucketer来完成此操作。