我有一個 Scala 代碼,可以使用帶有 datastax 驅動程式的 cassandra。我想INSERT …. IF NOT EXISTS改用SELECT and INSERT. 我找不到正確的方法來獲取INSERTED INFORMATION之后INSERT, session.execute 只回傳我FALSE or TRUE。你能幫我寫一個代碼,如果插入了這樣一個鍵的行,我就可以獲取資料嗎?
連接代碼:
private val query=
s"INSERT INTO ${keyspace}.${table} (code,date) VALUES (?, ?) IF NOT EXISTS"
override def insertIfNotExist(code: String, date: String): Boolean = {
connector.withSessionDo { session =>
val prep = connector.prepare(session, query)
val res: Boolean = session.execute(prep.bind(code, date) // return only boolean
).wasApplied()
}
}
insert into date_table(code, date) VALUES ('5', '2028-01-01') if not exists;
如果行在表中,則控制臺中的回應為:
[applied]| code| date
false,5,2021-11-15
我想在 Scala 代碼中訪問 5,2021-11-15
if not only
[applied]
true
uj5u.com熱心網友回復:
不,呼叫session.execute總是回傳ResultSet,它只wasApplied回傳布林值。如果您想獲得更多詳細資訊,可以將其更改為:
val res: Boolean = session.execute(prep.bind(code, date))
if (res.wasApplied) {
// handle applied case - in this case you get only the boolean value
} else {
// handle not-applied - in this case you can extract information
// about conflicting values
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/372780.html
標籤:斯卡拉 阿帕奇火花 卡桑德拉 数据税 spark-cassandra-connector
