如何使用Java中的结构化流来从Kafka反序列化记录?

时间:2017-05-12 09:30:59

标签: java apache-spark apache-kafka spark-structured-streaming

我使用Spark 2.1

我正在尝试使用Spark Structured Streaming从Kafka读取记录,然后对它们进行反序列化并在之后应用聚合。

我有以下代码:

SparkSession spark = SparkSession
        .builder()
        .appName("Statistics")
        .getOrCreate();

Dataset<Row> df = spark
        .readStream()
        .format("kafka")
        .option("kafka.bootstrap.servers", kafkaUri)
        .option("subscribe", "Statistics")
        .option("startingOffsets", "earliest")
        .load();

df.selectExpr("CAST(value AS STRING)")

我想要的是将value字段反序列化为我的对象而不是转换为String

我有一个自定义反序列化器。

public StatisticsRecord deserialize(String s, byte[] bytes)

我怎样才能用Java做到这一点?

我找到的唯一相关链接是https://databricks.com/blog/2017/04/26/processing-data-in-apache-kafka-with-structured-streaming-in-apache-spark-2-2.html,但这是针对Scala的。

0 个答案:

没有答案