我如何在 CQL 中验证所有行都已成功从 CSV 复制到 Cassandra table? ***SELECT 语句未返回所有结果

How do I verify in CQL that all the rows have successfully copied from a CSV to a Cassandra table? ***SELECT statements are not returning all results

我试图通过 public 数据集来理解 Cassandra。 我在本地 Cassandra 实例上将 1.5M 行从 CSV 插入到 table,WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 1 }
table 是用 one field as a partition key, and one more as primary key

创建的

我确认已处理 150 万行。 COPY Completed

但是当我在 table 上 运行 SELECT or SELECT COUNT(*) 时,我总是得到最多 182 行。  其次,records returned with clustered columns seem to higher than single columns 的数量对我来说没有意义。从 Cassandra 的架构和查询的角度来看,我缺少什么。

最后我也尝试从 pyspark shell 读取相同的 Cassandra table,它似乎也在读取 182 行。

您的主键是 PRIMARY KEY (state, severity)。使用此主键定义,所有处于相同状态且严重程度相同的事故行将相互覆盖。您的数据集中可能只有 182 种不同的(状态、严重性)组合。

您可以包含另一个聚类列来记录唯一​​的事故,例如 accident_id

这篇博客强调了主键的重要性,并提供了一些示例: https://www.datastax.com/blog/2016/02/most-important-thing-know-cassandra-data-modeling-primary-key