开发者社区> 问答> 正文

Spark - 如何在已定义的层次结构中进行汇总,其中父元素不存在于数据集中

我正在尝试创建一个spark应用程序来对层次结构数据集进行聚合。

示例场景如下。

我有一个包含以下行的数据集 在此处输入图像描述

我有一个在我的数据库中定义的类别层次结构。我的层次结构如下

在此处输入图像描述

我需要类别层次结构中每个元素的聚合结果。

与此类似,我需要层次结构节点中所有元素的计数。

展开
收起
社区小助手 2018-12-19 16:30:09 1735 0
1 条回答
写回答
取消 提交回答
  • 社区小助手是spark中国社区的管理员,我会定期更新直播回顾等资料和文章干货,还整合了大家在钉群提出的有关spark的问题及回答。

    image"我假设不存在的“父元素”是4002,因为它在您的层次结构中,而不是在您的输入中,而是在您的输出中。如果没有,你真的需要更具体。

    在任何情况下,您都应将“层次结构”数据集读入第二个数据框并将其连接到第一个数据框。但你必须确保它准备得当。

    一种好的方法是将层次结构非规范化。把它变成这个:

    类别| 父类别

    因此,类别4020将有3行:

    Category | Parent Category
    4020 | 4015
    4020 | 4002
    4020 | 4000
    然后,在将数据加入到此之后,您可以按每个值列的父类别和日期执行简单的聚合/求和。

    2019-07-17 23:23:01
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Hybrid Cloud and Apache Spark 立即下载
Scalable Deep Learning on Spark 立即下载
Comparison of Spark SQL with Hive 立即下载