Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache kafka 为什么使用spark direct stream从kafka接收的元组的第一个成员为null_Apache Kafka_Spark Streaming - Fatal编程技术网

Apache kafka 为什么使用spark direct stream从kafka接收的元组的第一个成员为null

Apache kafka 为什么使用spark direct stream从kafka接收的元组的第一个成员为null,apache-kafka,spark-streaming,Apache Kafka,Spark Streaming,使用KafkaUtils.createDirectStream从kafka读取消息时,Tuple2的v1.\u 1成员为空: KafkaUtils.createDirectStream( streamingContext, String.class, String.class, StringDecoder.class, StringDec

使用KafkaUtils.createDirectStream从kafka读取消息时,Tuple2的v1.\u 1成员为空:

KafkaUtils.createDirectStream(
                streamingContext,
                String.class,
                String.class,
                StringDecoder.class,
                StringDecoder.class,
                kafkaParams,
                topicsSet
                ).map(new Function<Tuple2<String,String>, String>() {
                    @Override
                    public String call(Tuple2<String, String> v1)
                            throws Exception {
                        System.out.println(v1._1);
                        return null;
                    }
                });
KafkaUtils.createDirectStream(
流线型背景,
String.class,
String.class,
StringDecoder.class,
StringDecoder.class,
卡夫卡帕拉姆斯,
主题集
).map(新函数(){
@凌驾
公共字符串调用(tuple2v1)
抛出异常{
系统输出打印LN(v1._1);
返回null;
}
});
而_2成员包含传递给卡夫卡的消息本身

我有两个问题:

1) 为什么v1._1为空


2) 有没有办法在卡夫卡中传递主题名称(与将消息放入卡夫卡的方式相同),以便v1.\u 1包含主题名称?

我已经回答了这个问题,因为这是重复,但我会添加
v1.\u 1
在本例中为
null
,因为它包含消息的键,你显然没有使用它(因此它是空的)。我查找了你回答的问题,但没有找到,你能在这里添加链接吗?卡夫卡制作人方面应该做些什么才能在密钥中设置一些值呢?你接受了我的回答:你的制作人需要创建
KeyedMessages
。如果你这样做:
producer.send(List)
。我将尝试发送KeyedMessage并更新它是否有效。