2016-08-16 2 views
2

writeAsText 또는 writeAsCsv 메서드는 작업자 스레드만큼 파일을 씁니다. 내가 볼 수있는 한, 메서드는 이러한 파일의 경로와 일부 서식 지정 만 허용합니다.Flink에서 DataStream을 단일 파일에 쓰는 방법은 무엇입니까?

디버깅 및 테스트 목적으로 단일 작업자 스레드가있는 것으로 설정을 변경할 필요없이 모든 파일을 단일 파일로 인쇄 할 수 있으면 정말 유용 할 것입니다.

이것을 달성하는 데 지나치게 복잡하지 않은 방법이 있습니까? 나는 그것이 가능한 한 사용자 정의 SinkFunction을 구현할 수 있어야한다고 생각하지만, 그 중 하나에 대해서는 확신 할 수 없다. (게다가, 상대적으로 단순한 것처럼 보이는 번거 로움처럼 느껴진다.)

답변

5

병렬 처리를 1로 설정하면이 작업을 수행 할 수 있습니다. 이렇게하면 한 컴퓨터에서만 쓰기가 수행됩니다.

writeAsText(path).setParallelism(1); 
관련 문제