問題タブ [message-hub]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - グループ化および集約時の KTable の問題を文字列にキャストする Kafka ストリーム
sensor_code: x, time: 1526978768, address: Y
各センサーコードで一意のアドレスをそれぞれ格納する KTable を作成したいように見える受信メッセージを含む Kafka ストリームがあり
ます。
KTable
どこkvm1
とkvm2
は自分のものKeyValueMappers
です。私の考えは、既存のキーを に置き換えて、 とをsensor_code=x, address=y
実行することでした。次に、別のwhereが既存のものを変更してを含むようにすると、値はそのカウントになります。しかし、それが機能していないので、間違っているのかもしれません...文字列を探しているため、ロングとしてキャストしようとし、例外をスローします。カウントを にしたいですよね?groupByKey()
count()
groupBy(kvm2, Serialized.with(stringSerde, longSerde))
kvm2
key
sensor_code
Long
KeyValueMapper
それぞれのヘルプ機能で使用する最初のものを次に示します。
2 番目KeyValueMapper
とそのヘルプ関数を次に示します。
コードを実行しようとすると返される例外とエラーを次に示します。
[2018-05-29 15:28:40,119] エラー ストリーム スレッド [testUniqueAddresses-ed48daf8-fff0-42e4-bb5a-687584734b45-StreamThread-1] 次のエラーのため、ストリーム タスク 2_0 の処理に失敗しました: (org.apache. kafka.streams.processor.internals.AssignedStreamsTasks:105) java.lang.ClassCastException: java.lang.Long は org.apache.kafka.common.serialization.StringSerializer.serialize(StringSerializer.java で java.lang.String にキャストできません:28) org.apache.kafka.streams.state.StateSerdes.rawValue(StateSerdes.java:178) で org.apache.kafka.streams.state.internals.MeteredKeyValueBytesStore$1.innerValue(MeteredKeyValueBytesStore.java:66) で org .apache.kafka.streams.state.internals.MeteredKeyValueBytesStore$1.innerValue(MeteredKeyValueBytesStore.java:57) org.apache.kafka.streams.state.internals.InnerMeteredKeyValueStore.put(InnerMeteredKeyValueStore.java:198) at org.apache.kafka.streams.state.internals.MeteredKeyValueBytesStore.put(MeteredKeyValueBytesStore.java:117) at org.apache.kafka.streams.kstream.internals.KTableAggregate$KTableAggregateProcessor.process( KTableAggregate.java:95) org.apache.kafka.streams.kstream.internals.KTableAggregate$KTableAggregateProcessor.process(KTableAggregate.java:56) で
java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.String
エラーに注意してください。
このエラーが発生する理由と、それを修正する方法、またはコードを編集して目的の出力に到達する方法をアドバイスする方法はありますか?
よろしくお願いします!
編集: アプローチの1つを放棄したため、質問を大幅に見直しました。
ibm-cloud - メッセージ ハブ サービスの作成中にエラーが発生しました
IBM Message Hub サービスの作成中に次のエラーが発生しました。このエラーの原因を確認するのを手伝っていただけますか?
java - メッセージハブでkafkacatを使用する方法
メッセージ ハブで kafkacat を使用しようとして、次を使用しました。
次のエラーが発生しました:
提供された資格情報で kerberos を使用して正しいキーを作成し、それらを使用してトピックから使用するにはどうすればよいですか?