我成功整合了kafka和saprk。 我想从kafka发送流到spark.and现在我能够将流发送到spark.I想在RDD中使用这个流,所以我使用createRDD()函数来创建rdds。 但我在rdd只收到了kafka的一些按摩师。因为它取决于偏移范围。所以任何人都可以告诉我如何在kafka-spark CreateRDD()函数中设置offsetRange()。
答案 0 :(得分:0)
只需在您的代码段中使用
即可// Import dependencies and create kafka params as in Create Direct Stream
val offsetRanges = Array(
// topic, partition, inclusive starting offset, exclusive ending offset
OffsetRange("test", 0, 0, 100),
OffsetRange("test", 1, 0, 100)
)
val rdd = KafkaUtils.createRDD[String, String](sparkContext, kafkaParams, offsetRanges, PreferConsistent)
根据文件: pyspark kafka streaming
首先使用
为kafka主题分区设置offsetrangespyspark.streaming.kafka.OffsetRange(topic, partition, fromOffset, untilOffset)
初始化看起来像:
fromOffset = 0
untilOffset = 10
partition = 0
topic = 'topic'
offset = OffsetRange(topic, partition, fromOffset, untilOffset)
offsets = [offset]
然后你就可以创建你的RDD
了kafkaRDD = KafkaUtils.createRDD(sc, kafkaParams, offsets)
答案 1 :(得分:0)
请找到用于Kafka偏移处理的代码段。
topicpartion = TopicAndPartition(var_topic_src_name, var_partition)
fromoffset = {topicpartion: var_offset}
print(fromoffset)
kvs = KafkaUtils.createDirectStream(ssc,\
[var_topic_src_name],\
var_kafka_parms_src,\
valueDecoder=serializer.decode_message,\
fromOffsets = fromoffset)