val timestamp: Long = System.currentTimeMillis - (2629746 * 1000)
sc.cassandraTable("keyspace", "users").select("id").where("timestamp > ?", timestamp).cassandraCount()
"时间戳"这是一个标准的cassandra类型时间戳,并按此格式化。
我想将我的时间戳转换为正确的格式,以便我可以找到具有在过去30天内更新的时间戳的任何用户记录,但我不确定如何在scala中正确格式化它。我看到datastax cassandra连接器中有一个TimestampFormatter类,但我不能让它适用于我。
答案 0 :(得分:0)
您不会在那里使用该方法,而是将timeuuid
分配给各个更新。因此,更新会将群集密钥设为timestamp timeuuid
CLUSTERING ORDER BY(timestamp descending)
。
import com.datastax.driver.core.utils.UUIDs
sc.cassandraTable("keyspace", "users")
.select("id")
.where("timestamp > ?", UUIDs.startOf(timeuuid))
.cassandraCount()
或者您可以使用minTimeUUID
和maxTimeUUID
。
val now = DateTime.now(DateTimeZone.UTC)
val start = now.plusDays(-30)
sc.cassandraTable("keyspace", "users")
.select("id")
.where("timestamp >= minTimeUUID(start.toISOString))
.and(("timestamp <= maxTimeUUID(now.toISOString)))
.cassandraCount()