我正在使用Spark 1.6.0和使用Kafka的工件spark-streaming_2.11 API来使用字符串消息。
根据文档,我试图使用Kafka utils创建直接流,但我收到以下编译器错误:
KafkaUtils类型中的方法createDirectStream(JavaStreamingContext,Class,Class,Class,Class,Map,Set)不适用于参数(JavaStreamingContext,Class,Class,Class,Class,Map,Set)
以下是我编写的代码段:
conf = new SparkConf().setAppName("Test Streaming App").setMaster("local[*]");
sc = new JavaSparkContext(conf);
ssc = new JavaStreamingContext(sc, new Duration(2000));
Map<String, String> kafkaParams = new HashMap<String, String>();
kafkaParams.put("metadata.broker.list", "localhost:9092");
Set<String> topics = Collections.singleton("test");
JavaPairInputDStream<String, String> dstream = KafkaUtils.createDirectStream(ssc, String.class, String.class, StringDecoder.class, StringDecoder.class,kafkaParams,topics);
ssc.start();
ssc.awaitTermination();
这是神器和我正在使用的Spark版本的一些问题吗?请详细说明一下。
答案 0 :(得分:0)
问题在于StringDecoder类。该类似乎无法访问。
根据以下帖子
Can't acess kafka.serializer.StringDecoder
我按照接受的答案按照提到的程序解决了问题。