2017-12-05 3 views
0

Ich habe etwas mit Coding-Teil versucht, indem Sie Strings und kam mit dem Code unten, bitte helfen Sie mit der Syntax Probleme mit dem Code.KStream inkompatible Typen

KStreamBuilder builder = new KStreamBuilder(); 
KStream<String, String> textlines = builder.stream("INTOPIC"); 
KStream<String, String> mstream = textlines 
    .foreach(new ForeachAction<String, String>(){ 
     public void apply(String key, String value){ 
      String str=value.replace("[",""); 
      for(int y=0; y<str.length(); y++){ 
       //System.out.print(str.charAt(y)); 
      } 
      //System.out.print("\n"); 
     } 
    }); 
mstream.to("OUTTOPIC"); 

In der zweiten KStream Aussage es inkompatible Typen zeigt ..... Ich mag die Logik ersetzen, mit zu arbeiten und es soll zu Textzeilen Variable beeinflusst werden. Vielen Dank im Voraus.

Antwort

1

Das Ergebnis von foreach ist das void, nicht das nächste KStream. Wenn Sie Daten zu transformieren möchten, dann müssen Sie map stattdessen verwenden ...

-Code sieht wie folgt (vor allem, wenn Sie Schlüssel als auch ändern müssen, wenn nicht - nächste Variante e):

KStreamBuilder builder = new KStreamBuilder(); 
KStream<String, String> textlines = builder.stream("INTOPIC"); 
KStream<String, String> mstream = textlines 
    .map((key, value) -> new KeyValue<>(key, value.replace("[","")))); 
mstream.to("OUTTOPIC"); 

oder können Sie Linien 3-4 mit folgenden ersetzen (es zu einer besseren Ausführung führt):

KStream<String, String> mstream = textlines 
    .mapValues(value -> value.replace("[","")); 
+0

Can u senden Sie mir einfach den editierten Code für above..i verstand nicht richtig –

+1

ich habe den Code hinzugefügt um es zu zeigen, aber ich empfehle vor dem Sprung in die Codierung zu r ead Dokumentation (https://docs.confluent.io/current/streams/index.html) - die Kafka Streams sind konzeptionell einfach, aber es ist besser, zuerst die Grundlagen zu finden –

+0

Vielen Dank ... es funktionierte für mich .. .und eine weitere Frage ist, wie kann ich entfernen Null, die als Schlüssel in "KStream " –