使用Spring Cloud Dataflow与Kafka一起流式传输CSV文件

时间:2016-12-13 07:27:44

标签: apache-kafka spring-integration spring-cloud-stream spring-cloud-dataflow

我正在尝试使用Spring Cloud数据流和Kafka来传输csv文件。我们的想法是逐行传输文件,每行包含一个标题。例如,如果我的csv文件的内容是

street,city,zip,state
3526 HIGH ST,SACRAMENTO,95838,CA
51 OMAHA CT,SACRAMENTO,95823,CA
2796 BRANCH ST,SACRAMENTO,95815,CA

然后流数据应采用以下格式(期望输出)

street,city,zip,state
3526 HIGH ST,SACRAMENTO,95838,CA

street,city,zip,state
51 OMAHA CT,SACRAMENTO,95823,CA

street,city,zip,state
2796 BRANCH ST,SACRAMENTO,95815,CA

我正在使用FileSplitter将消息传递到输出通道。

private Source channels;

FileSplitter splitter = new FileSplitter(true, true);
splitter.setOutputChannel(channels.output());
splitter.handleMessage(new GenericMessage<File>(file));

我目前得到的输出是

Sink :    street,city,zip,state
Sink :    3526 HIGH ST,SACRAMENTO,95838,CA
Sink :    51 OMAHA CT,SACRAMENTO,95823,CA
Sink :    2796 BRANCH ST,SACRAMENTO,95815,CA

1 个答案:

答案 0 :(得分:1)

在拆分器后添加一个过滤器以删除第一行。

在过滤器后添加一个变换器,将有效负载转换为

"street,city,zip,state\n" + payload