【发布时间】:2019-09-10 18:10:21
【问题描述】:
我已经在本地安装了 kafka(目前没有集群/模式注册表)并尝试生成 Avro 主题,下面是与该主题关联的模式。
{
"type" : "record",
"name" : "Customer",
"namespace" : "com.example.Customer",
"doc" : "Class: Customer",
"fields" : [ {
"name" : "name",
"type" : "string",
"doc" : "Variable: Customer Name"
}, {
"name" : "salary",
"type" : "double",
"doc" : "Variable: Customer Salary"
} ]
}
我想创建一个简单的SparkProducerApi,根据上面的架构创建一些数据,然后发布到kafka。
考虑创建示例数据转换为dataframe,然后将其更改为avro,然后发布。
val df = spark.createDataFrame(<<data>>)
然后,如下所示:
df.write
.format("kafka")
.option("kafka.bootstrap.servers","localhost:9092")
.option("topic","customer_avro_topic")
.save()
}
现在可以通过manually 将架构附加到这个 avro 主题。
这可以通过使用Apache Spark APIs 而不是使用Java/Kafka Apis 来完成吗?这是用于批处理而不是streaming。
【问题讨论】:
标签: scala apache-spark apache-kafka apache-spark-sql spark-avro