从 Cassandra 列族中的冻结集列中获取不同的字段值
Posted
技术标签:
【中文标题】从 Cassandra 列族中的冻结集列中获取不同的字段值【英文标题】:Fetch distinct field values from frozen set column in Cassandra columnfamily 【发布时间】:2020-07-10 00:50:04 【问题描述】:您好,请帮我获取以下要求的 cql 查询 - 列族包含列:deptid (datatype:uuid emplList (datatype: set frozen(employee)) 我如何从员工对象中获取所有不同的员工姓名,并将其存储为 emplList 的列值。
【问题讨论】:
请展示一些您尝试过的代码,人们将能够帮助您 【参考方案1】:这样的查询无法用纯 CQL 表达——Cassandra 被优化为通过主键读取数据,聚合操作非常有限。您有 2 个选择:
-
通过您的程序从表中读取所有数据,并提取不同的值
将 Spark 与 Spark Cassandra Connector 结合使用 - 它会从表中读取所有数据,但您将拥有更高级别的抽象来处理数据,并且它可以对您的表执行更优化的扫描。
【讨论】:
谢谢 Alex.. 意思是,我可以使用 datastax Java 驱动程序将所有结果作为 deptid、empllist 集...。然后只需编写一个程序来从 emplList 对象中获取不同的值。请建议 我会警告说,对 Cassandra 表的有效扫描并不是那么简单的任务,所以最好坚持使用 Spark 好的,亚历克斯。将与火花一起去以上是关于从 Cassandra 列族中的冻结集列中获取不同的字段值的主要内容,如果未能解决你的问题,请参考以下文章