Apache spark 在Spark Streaming(Spark 2.0)中消费卡夫卡

Apache spark 在Spark Streaming(Spark 2.0)中消费卡夫卡,apache-spark,apache-kafka,apache-spark-sql,spark-streaming,spark-structured-streaming,Apache Spark,Apache Kafka,Apache Spark Sql,Spark Streaming,Spark Structured Streaming,我发现有两种方法可以在Spark Streaming(Spark 2.0)中使用卡夫卡主题: 1) 使用KafkaUtils.createDirectStream每k秒获取一次数据流,请参阅 2) 使用kafka:sqlContext.read.format(“json”).stream(“kafka://KAFKA_HOST“”为Spark 2.0的新功能创建无限数据帧:结构化流媒体,相关文档 方法1)有效,但2)无效,我得到以下错误 Exception in thread "main" ja

我发现有两种方法可以在Spark Streaming(Spark 2.0)中使用卡夫卡主题:

1) 使用
KafkaUtils.createDirectStream
每k秒获取一次数据流,请参阅

2) 使用
kafka:sqlContext.read.format(“json”).stream(“kafka://KAFKA_HOST“”
为Spark 2.0的新功能创建无限数据帧:结构化流媒体,相关文档

方法1)有效,但2)无效,我得到以下错误

Exception in thread "main" java.lang.NoSuchMethodError: org.apache.spark.sql.DataFrameReader.stream(Ljava/lang/String;)Lorg/apache/spark/sql/Dataset;
...
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:729)
at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:185)
at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:210)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:124)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
我的问题是:
什么是
“kafka://KAFKA_HOST“
指的是?
我应该如何解决这个问题


提前谢谢你

Spark 2.0还不支持卡夫卡作为无限数据帧/集的来源。计划在2.1中添加支持

编辑:(6.12.2016) 卡夫卡0.10现在是:


谢谢@Yuval Itzhakov,这是相关的JIRA票证,希望此功能能尽快发布更新:Kafka 0.10+结构化流媒体作品,Spark>=v2.0.2(拉取请求:)
val ds1 = spark
  .readStream
  .format("kafka")
  .option("kafka.bootstrap.servers", "host1:port1,host2:port2")
  .option("subscribe", "topic1")
  .load()

ds1
  .selectExpr("CAST(key AS STRING)", "CAST(value AS STRING)")
  .as[(String, String)]