在Scala中创建自定义生产者时出错

时间:2019-03-28 09:04:07

标签: kafka-producer-api

我已经使用scala在Kafka中为自定义生产者编写了一个小代码,它给出了以下错误。我已经在代码部分附加了代码。我已附上一些代码以供参考。

Name: Compile Error
Message: <console>:61: error: not found: type KafkaProducer
               val producer = new KafkaProducer[String, String](props)
                                  ^

我认为我需要导入一个相关的程序包。我尝试导入软件包,但无法获得正确的软件包。

val producer = new KafkaProducer[String, String](props)

for( i <- 1 to 10) {
//producer.send(new ProducerRecord[String, String]("jin", "test", 
"test"));
val record = new ProducerRecord("jin", "key", "the end ")
producer.send(record)

2 个答案:

答案 0 :(得分:0)

我现在无法为jupyter安装scala内核,但是基于this github,您应该将Kafka添加为依赖项,这样库可能会被识别

%%configure -f
{
    "conf": {
        "spark.jars.packages": "org.apache.spark:spark-streaming_2.11:2.1.0,org.apache.bahir:spark-streaming-twitter_2.11:2.1.0,org.apache.spark:spark-streaming-kafka-0-8_2.10:2.1.0,com.google.code.gson:gson:2.4",
        "spark.jars.excludes": "org.scala-lang:scala-reflect,org.apache.spark:spark-tags_2.11"
    }
}

如果这不起作用,请尝试从git下载整个笔记本,然后自行启动,以查看是否还需要其他内容

答案 1 :(得分:0)

@Arthur,魔术命令%% configure -f在jupyter笔记本中不起作用。我尝试从git下载整个笔记本,但这也行不通。幸运的是我当时 阅读有关添加依赖项的apache toree文档,并找到了%% addDeps命令。将以下格式的依赖项放入jupyter Notebook后, 我设法运行了代码。

%AddDeps org.apache.kafka kafka-clients 1.0.0

%AddDeps org.apache.spark spark-core_2.11 2.3.0

仅为其他人的信息,当我们使用SBT编译代码时,我们需要从jupyter笔记本中注释此代码,因为我们会将它们添加到build.sbt文件中。

感谢亚瑟(Arthur)展示了方向!