我试图以列联表的形式获得 Hive 中几个分类变量的结果。
Var1 = {val_11, val_12, val_13}
Var2 = {val_21, val_22, val_23}
结果应该是这样的
val11 val12 val13
------------------------------
val21 x x x
val22 x x x
val23 x x x
其中 x - 各个值组合的计数。我的数据对于每个变量都有 3 个以上的分类值,大约 100 个。
所以,我尝试了几个步骤:
CREATE TABLE tmp_1 as SELECT Var1, COUNT (DISTINCT Var2) AS Var2_count FROM my_table GROUP BY Var1;
CREATE TABLE tmp_2 as SELECT Var2, COUNT (DISTINCT Var2) AS Var1_count FROM my_table GROUP BY Var2;
那会给我 tmp_1
val11 num_val21
val11 num_val22
val11 num_val23
val12 num_val21
val12 num_val22
val12 num_val23
val13 num_val21
val13 num_val22
val13 num_val23
和 tmp_2 类似。
现在,从 tmp_1 中
选择 Var1,collect_set(Var2_count);
从 tmp_2 中选择 Var2、collect_set(Var1_count);
对于许多分类值和超过 2 个变量,是否有更好的方法、正确的方法?