我正在寻找在foreachpartition循环中将整个Dataframe保存到Cassandra。
我知道我可以在foreachpartition中获得Cassandra连接器,并使用以下代码在cassandra上执行CRUD语句:
val conf: SparkConf = new SparkConf(true)
.set("spark.cassandra.connection.host", "IP")
.set("spark.cassandra.auth.username", "username")
.set("spark.cassandra.auth.password", "pwd")
val cdbConnector = CassandraConnector(conf)
cdbConnector.withSessionDo(session =>
session.execute(//Insert statement)
)
但是我对将整个Dataframe一次存储在foreachpartition中的Cassandra表中感兴趣。
此外,当我执行以下语句来创建数据框并在foreachpartition的Cassandra中写入数据框时,我的应用程序正在挂起,并且所有线程都处于等待状态。
df.write.format("org.apache.spark.sql.cassandra").options(Map( "table" -> "***", "keyspace" -> "***")).save()
答案 0 :(得分:0)
您应该可以直接使用Cassandra API进行调用,可以尝试一下是否有帮助
FormClosing
您应该能够保存数据,并且不需要显式调用ForEachPartition
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
//Dispose images
if (zero != null) zero.Dispose();
if (negative != null) negative.Dispose();
if (positive != null) positive.Dispose();
}