使用自定义接收器从数据集中接收流数据 [Spark Streaming]

Posted

技术标签:

【中文标题】使用自定义接收器从数据集中接收流数据 [Spark Streaming]【英文标题】:Receive streaming data from dataset with custom receiver [Spark Streaming] 【发布时间】:2019-10-14 12:27:54 【问题描述】:

我是 Spark 的新手,它是库!

我有一个案例,我需要将数据集发送到自定义接收器的store(),然后从这个自定义接收器流式传输数据。

我在自定义接收器类中以这种方式获取数据集:

Dataset<Row> jdbcDF = spark.read()
.format("jdbc")
.option("url", "jdbc:mysql:dbserver")
.option("dbtable", "schema.tablename")
.option("user", "username")
.option("password", "password")
.load();

现在我想将此数据集用作流数据,所以我必须将这个数据集存储在 Receiver 类的store() 中:

store(jdbcDF);

是否可以通过这种方式进行流式传输? 附注不使用Structured Streaming Programming

提前谢谢你!

【问题讨论】:

你找到解决办法了吗? 【参考方案1】:

spark 不支持 jdbc 数据库表的流式传输。但它确实支持作为接收器。而是使用 kafka 连接将数据库表中的数据作为流服务发送,并通过 spark 结构化 straming 读取。

【讨论】:

以上是关于使用自定义接收器从数据集中接收流数据 [Spark Streaming]的主要内容,如果未能解决你的问题,请参考以下文章

Spark Streaming REST 自定义接收器

使用 ForeachWriter 在 Spark 流中实现 Cassandra 接收器

如何使用spark streaming接收kafka中发送的自定义对象

如何设置 Spark 流式接收器频率?

Kafka:ZK+Kafka+Spark Streaming集群环境搭建(二十二)Spark Streaming接收流数据及使用窗口函数

Spark Streaming:执行者与自定义接收者的数量