1

Ich versuche, CSV-Datei mit Spring Cloud Datenfluss und Kafka zu streamen. Die Idee besteht darin, die Datei Zeile für Zeile mit Header für jede Zeile zu streamen. Zum Beispiel, wenn der Inhalt meiner CSV-Datei istStream CSV-Datei mit Spring Cloud Dataflow mit Kafka

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

Dann wird die gestreamten Daten in folgendem Format (gewünschte Ausgabe)

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 

ich FileSplitter verwende sein sollten, die Nachrichten an den Ausgangskanal passieren .

private Source channels; 

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

Die Ausgabe, die ich zur Zeit bin immer ist

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 

Antwort

1

einen Filter nach dem Splitter Fügen Sie die erste Zeile fallen zu lassen.

einen Transformator nach dem Filter hinzufügen um die Nutzlast zu

"street,city,zip,state\n" + payload 
zu transformieren
Verwandte Themen