我不明白为什么在最后阶段没有任何保存或追加数据操作

I don't understand why there isn't any save or append data operation at the last stage

      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()

在代码的最后,dataframe被写入cassandra table。

通过UI检查最后阶段后,没有要执行的部分save/append-data。

我想知道为什么它不存在或者我错过了什么。

=========================== 更改我的代码后============== =============

      .writeStream
//      .foreachBatch((batchDF: DataFrame, batchId: Long) =>
//        batchDF.write
//          .format("org.apache.spark.sql.cassandra")
//          .cassandraFormat(cassandraTable, cassandraKeyspace, cassandraCluster)
//          .mode("append")
//          .save())
      .cassandraFormat(cassandraTable, cassandraKeyspace, cassandraCluster)
      .option("checkpointLocation", checkpointDir)
      .start()
      .awaitTermination()

但我可以在 SQL 选项卡中看到 WriteToDataSourceV2。

也许它不能直接回答你的问题,但是对于Spark 3.0和SCC 3.0.0(你应该使用3.0.0-beta)你不应该使用foreachBatch,而只是通过指定写入数据as-is Cassandra 格式——因为 SCC 2.5.0 Spark Structured Streaming 是原生支持的——见公告:https://www.datastax.com/blog/2020/05/advanced-apache-cassandra-analytics-now-open-all