如何将元组值解析为 Person 对象?
How to I parse tuple value as an Person Object?
我在storm中实现了一个Logger Bolt,元组的输入来自Kafka Topic。我正在使用 Kafka Connect 来监听 mySQL 数据库的变化。
public class LoggerBolt extends BaseBasicBolt {
private static final long serialVersionUID = 1L;
private static final Logger LOG = Logger.getLogger(LoggerBolt.class);
public void execute(Tuple input, BasicOutputCollector collector) {
System.out.println(input.getValue(0));
}
public void declareOutputFields(OutputFieldsDeclarer declarer) {
}
}
当下面的本地集群上的 运行 被打印时。
Q�%Buckley, Rose RoseBuckley"BuckleyR@univ.edu"963.555.6855x5018963.777.5233Curator
Q� Stanton, Kathie KathieStanton"StantonK@univ.edu963.555.7095963.777.1015Professor
Q�Banks, Shannon Shannon
BanksBanksS@univ.edu963.555.7198963.777.6979Professor
Q�/Barnes, Cleo CleoBarnes
BarnesC@univ.edu"963.555.7463x7335963.777.1583$Research Professor
我想将这些细节转换为 Person 对象,这是一个模型 class?
我们如何将元组输入解析为对象?
我尝试了input.getValues(0) , input.getFields(0)
和其他方法,none似乎有效。
如果您使用的是 storm-kafka-client
,它会默认使用字符串。你可以通过做例如选择别的东西kafkaSpoutConfig.setProp(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, ByteArrayDeserializer.class);
。您设置的 class 只需实现 Kafka Deserializer 接口 https://kafka.apache.org/11/javadoc/org/apache/kafka/common/serialization/Deserializer.html。
设置密钥解串器有一个等效设置。
我在storm中实现了一个Logger Bolt,元组的输入来自Kafka Topic。我正在使用 Kafka Connect 来监听 mySQL 数据库的变化。
public class LoggerBolt extends BaseBasicBolt {
private static final long serialVersionUID = 1L;
private static final Logger LOG = Logger.getLogger(LoggerBolt.class);
public void execute(Tuple input, BasicOutputCollector collector) {
System.out.println(input.getValue(0));
}
public void declareOutputFields(OutputFieldsDeclarer declarer) {
}
}
当下面的本地集群上的 运行 被打印时。
Q�%Buckley, Rose RoseBuckley"BuckleyR@univ.edu"963.555.6855x5018963.777.5233Curator Q� Stanton, Kathie KathieStanton"StantonK@univ.edu963.555.7095963.777.1015Professor Q�Banks, Shannon Shannon BanksBanksS@univ.edu963.555.7198963.777.6979Professor Q�/Barnes, Cleo CleoBarnes BarnesC@univ.edu"963.555.7463x7335963.777.1583$Research Professor
我想将这些细节转换为 Person 对象,这是一个模型 class? 我们如何将元组输入解析为对象?
我尝试了input.getValues(0) , input.getFields(0)
和其他方法,none似乎有效。
如果您使用的是 storm-kafka-client
,它会默认使用字符串。你可以通过做例如选择别的东西kafkaSpoutConfig.setProp(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, ByteArrayDeserializer.class);
。您设置的 class 只需实现 Kafka Deserializer 接口 https://kafka.apache.org/11/javadoc/org/apache/kafka/common/serialization/Deserializer.html。
设置密钥解串器有一个等效设置。