2016-08-16 4 views
2

Die writeAsText oder writeAsCsv Methoden einer DataStream schreiben so viele Dateien wie Worker-Threads. Soweit ich sehen konnte, können Sie mit den Methoden nur den Pfad zu diesen Dateien und einige Formatierungen angeben.In Flink, wie man DataStream in einzelne Datei schreibt?

Zu Debugging- und Testzwecken wäre es wirklich nützlich, alles in einer einzigen Datei drucken zu können, ohne die Einstellung auf einen einzelnen Worker-Thread umstellen zu müssen.

Gibt es einen nicht allzu komplizierten Weg, dies zu erreichen? Ich vermute, dass es möglich sein sollte, eine benutzerdefinierte SinkFunction zu implementieren, aber nicht sicher über diese (außerdem fühlt es sich auch wie ein Streit für etwas, das relativ einfach scheint).

Antwort

5

Sie können dies erreichen, indem Sie die Parallelität auf 1 setzen. Auf diese Weise geschieht das Schreiben nur auf einer Maschine.

writeAsText(path).setParallelism(1); 
Verwandte Themen