我有一个巨大的 Hive 表,由十个产品字段、购买日期字段和一个标识符组成。产品字段命名为prod1
, prod2
, ... ,prod10
表示最近购买的十种产品。对于大多数 ID,我们没有一直到十种产品的购买历史记录。
我想为每个prod<X>
字段构建人口比率分布,以显示整个数据集的购买历史细分。
目前,我正在运行一个 bash 脚本,该脚本对表运行十个连续查询,例如:
hive -e "select count(1) from db.tbl where prod<X> != '';"
...并将输出保存到文件中。这似乎笨拙且效率低下。有没有更好的方法来指定具有一系列字段条件的一系列字段的 Hive 计数?我尝试过使用 groupby 甚至映射一系列字段来提出一种策略,但我无法完全理解!= ''
为每个字段指定条件。
提前感谢任何方向。