我有一个Python Stream-sourced DataFrame df
,它包含了所有我想用spark-cassandra-connector放入Cassandra表中的数据。
df.write \
.format("org.apache.spark.sql.cassandra") \
.mode('append') \
.options(table="myTable",keyspace="myKeySpace") \
.save()
query = df.writeStream \
.format("org.apache.spark.sql.cassandra") \
.outputMode('append') \
.options(table="myTable",keyspace="myKeySpace") \
.start()
query.awaitTermination()
然而我不断地得到这样的错误,分别是:
pyspark.sql.utils.AnalysisException: "'write' can not be called on streaming Dataset/DataFrame;
和
java.lang.UnsupportedOperationException: Data source org.apache.spark.sql.cassandra does not support streamed writing.
是否有任何方法可以将流 Dataframe 发送到Cassandra表中?
2条答案
按热度按时间jhiyze9q1#
Spark Cassandra连接器中目前没有Cassandra的
Sink
流。您需要实现自己的Sink
或等待它可用。如果您使用的是Scala或Java,则可以使用
foreach
运算符和ForeachWriter
,如使用Foreach中所述。nuypyhwy2#
我知道这是一个旧的职位,更新它供将来参考。
您可以将其作为流数据的批处理。如下所示