[英]Spark Cassandra Connector query by partition key
什么是使用Spark Connector通過分區鍵查詢cassandra的理想方法。 我正在使用將密鑰傳遞到where
,但這會導致cassandra在引擎蓋下添加ALLAOW FILTERING
,從而導致超時。
當前設置:
csc.cassandraTable[DATA]("schema", "table").where("id =?", "xyz").map( x=> print(x))
這里的id
是分區鍵(不是主鍵),我有一個復合主鍵,僅使用分區鍵進行查詢
更新:是的,我對此有例外:
一致性為LOCAL_ONE的讀取查詢期間,Cassandra失敗(需要1個響應,但僅響應0個副本,其中1個失敗)
我的分區都沒有超過1000條記錄,並且我正在運行一個cassandra節點
如果在整個分區鍵上使用where子句,則ALLOW FILTERING不會影響您的查詢。 如果查詢超時,則可能意味着您的分區非常大或未指定完整的分區鍵
編輯:
Cassandra failure during read query at consistency LOCAL_ONE (1 responses were required but only 0 replica responded, 1 failed)
意味着您的查詢將被發送到沒有您要查找的數據副本的計算機。 通常,這意味着密鑰空間的復制設置不正確或連接主機不正確。 LOCAL_ONE
的LOCAL
部分意味着僅當LOCAL_DC
上的數據可用時,查詢才能成功LOCAL_DC
。
考慮到這一點,您有3個選擇
由於您只有一台機器,因此更改密鑰空間的復制可能是正確的選擇。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.