历史数据:
示例
Activity1 {Geography, TimePeriod, GRP, CPP}
Activity2 {TimePeriod, GRP, CPP}
Activity3 {Primary_Message, TimePeriod, GRP, CPP}
使用案例
有时我想查看不同时段的数据(这个 所有活动的维度都适用于所有活动
有时我想查看跨地域的数据(这个维度存在于一些活动中)
我必须设计RDD,以便我的所有用例都能有效地工作。
在任何给定的时间点,每项工作都将迎合一项活动。
我有两个选择 -
为每个活动创建一个RDD,并将其分配到该表中的维度。 因此,我将拥有与活动一样多的RDD 对于每个作业,我将访问特定的RDD并计算
为所有活动创建一个RDD,并在某个维度上将其包起来 对于每个作业,我将访问单个大RDD并对该活动执行RDD过滤并进行计算
我的问题是在给定用例和假设的情况下,哪个选项更有效地设计RDD。
TIA!
答案 0 :(得分:0)
单个RDD的优点是添加另一种活动类型(活动4)几乎没有用。单独RDD的优点是,当您只想访问一种活动类型时,您不必浏览其他类型的数据。
正如你在评论中所说:
在UI上,将显示所有活动的数据。为了实现这一目标,我们将运行多个作业(每个活动一个作业)并在不同时间段内计算其值。
如果您有N个活动类型和M个总记录,如果您有单独的RDD,则会通过M记录来呈现UI。如果您有一个RDD,您将浏览N×M个记录。