繁体   English   中英

Spark Streaming 将数据写入 Kafka 主题

[英]Spark Streaming Writing Data To Kafka Topic

我正在尝试为每个 RDD 将数据框写入 Kafka 主题。 我正在使用以下代码:

 mesg.foreachRDD(rdd => { Dataframe.write.format("kafka")
    .option("kafka.bootstrap.servers","host")
    .option("subscribe","topic")
    .option("principal","Kerberos-principal")
    .option("keytab","kerberos-keytab")
    .save()
    })

enter code here

我收到 null 指针异常。 具体来说,我需要将数据框写入 Kafka 主题。 任何人都可以帮忙吗? 注意这里的 Dataframe 是将 rdd 转换为 dataframe 并从发送到 Kafka Topic 的输入 json 中去除一些字段后得到的。

Exception in thread "main" java.lang.NullPointerException at java.util.regex.Matcher.getTextLength(Matcher.java:1283) at java.util.regex.Matcher.reset(Matcher.java309) at java.util.regex.Matcher.<init>(Matcher.java:229) at java.util.regex.Pattern.matcher(Pattern.java:1093)

null 指针异常是由于已解决的配置错误。 要将 dataframe 从 RDD 写入 kafka 主题,请遵循以下方法:

import sparkSession.implicts._

val df = Original Dataframe.select(col("one column name"),to_json(struct($"*"))).toDF("key","value")

df.write.format("kafka").option("bootstrap-server-properties",value from config).option("topic",value from config).save()

注意:如果要避免在 select 语句中对列名进行硬编码,请遵循以下方法:

val df = Original Dataframe.select(to_json(struct($"*"))).as("value").selectExpr("CAST(value as STRING)")

df.write.format("kafka").option("bootstrap-server-properties",来自配置的值).option("topic",来自配置的值).save()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM