hadoop - Cassandra 聚合到 Map

标签 hadoop cassandra hive datastax

我是 cassandra 的新手,过去几个月我主要使用 Hive。最近我开始了一个项目,我需要用 cassandra 代替在 hive 中做的一些事情。

本质上,我正在尝试找到一种方法来将多行聚合到查询时的单个映射中。

在配置单元中,我只是使用“ map ”聚合进行分组。 cassandra 中是否存在做类似事情的方法?

这是一个工作 hive 查询的例子,它完成了我想要做的任务:

select 
      map(
        "quantity", count(caseid)
        , "title" ,casesubcat
        , "id" , casesubcatid
        , "category", named_struct("id",casecatid,'title',casecat) 
      ) as casedata
from caselist
group by named_struct("id",casecatid,'title',casecat) , casesubcat, casesubcatid

最佳答案

将查询结果映射到 Map(或您选择的某些其他类型/结构/类)是客户端应用程序的责任,通常是一项微不足道的任务(但您没有指定将在什么上下文中使用此映射) .

这里的实际问题是关于 Cassandra 中的 GROUP BY。这是不支持开箱即用的。你可以查看 Cassandra 的 standard aggregate functions或者尝试创建 user defined function ,但是 Cassandra Way 提前了解您的查询,相应地设计您的架构,在写入阶段完成繁重的工作,然后简化查询。因此,分组/聚合通常可以通过使用专用的 counter tables 来实现。 .

另一种选择是在附加层(例如 Apache Spark)中进行数据处理。您是否考虑过在 Cassandra 上使用 Hive?

关于hadoop - Cassandra 聚合到 Map,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42510546/

相关文章:

hadoop - 在启用 kerberos 的 CDH 集群中添加 Hbase 服务

perl - 在组合器中使用管道的 Hadoop 流作业

cassandra - 如果我将正常一致性级别设置为条件写入 (LWT),会发生什么?

ruby-on-rails - 我可以将 cassandra 与 heroku 一起使用吗?

regex - 使用 SerDe 通过 Hive 解析 Nginx 日志记录

d3.js - 任何人都知道如何使用 D3js 进行 Apache 配置单元数据可视化?

hadoop - 在接收器上使用水槽将数据记录为所需格式

hadoop - 存储大量通常以千字节为单位的小文本文件并执行分析的好方法

r - 在 Windows 上为 sparklyr 安装 Spark

java - 用于复合列的 Cassandra 列族?