如何解决我不明白为什么最后阶段没有任何保存或追加数据操作
df.writeStream
.foreachBatch((batchDF: DataFrame,batchId: Long) =>
batchDF.write
.format("org.apache.spark.sql.cassandra")
.cassandraFormat(cassandraTable,cassandraKeyspace,cassandraCluster)
.mode("append")
.save())
.option("checkpointLocation",checkpointDir)
.start()
.awaitTermination()
在代码末尾,数据帧被写入cassandra表中。
在检查了UI的最后一个阶段后,没有任何部分可以执行保存/追加数据。
我想知道为什么它不存在或者我错过了什么。
==========================更改我的代码后================ ==========
.writeStream
// .foreachBatch((batchDF: DataFrame,batchId: Long) =>
// batchDF.write
// .format("org.apache.spark.sql.cassandra")
// .cassandraFormat(cassandraTable,cassandraCluster)
// .mode("append")
// .save())
.cassandraFormat(cassandraTable,cassandraCluster)
.option("checkpointLocation",checkpointDir)
.start()
.awaitTermination()
但是我可以在SQL选项卡中看到WriteToDataSourceV2。
解决方法
也许不是直接回答您的问题,但是对于Spark 3.0和SCC 3.0.0(您应使用3.0.0-beta),您不应使用foreachBatch,而只需通过指定Cassandra格式按原样写入数据-本地支持SCC 2.5.0 Spark结构化流-请参见公告:https://www.datastax.com/blog/2020/05/advanced-apache-cassandra-analytics-now-open-all
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。