假设我们有两张桌子。第一个表有以下描述:
animal_count:{zoo_name:chararray,counts:()}
“zoo_name”字段的含义很明显。 “计数”字段包含每种特定动物物种的计数。为了知道“count”元组中给定字段的确切种类,我们使用另一个表:
species_position:{species:chararray,position:int}
假设我们在“species_position”表中有以下数据: “老虎”,0 “大象”,1 “狮子”,2
此数据表示animal_count.counts中的第一个字段是给定动物园中的老虎数。该元组中的第二个字段是大象的数量,依此类推。因此,如果我们想要表示“圣地亚哥动物园”有2只老虎,4只大象而没有狮子的事实,我们将在“animal_count”表中提供以下数据: “圣地亚哥动物园”,(2,4,0)
鉴于此设置,如何编写查询以提取所有动物园中给定物种的数量?我希望有类似的东西:
FOREACH species_position GENERATE species,animal_count.counts。$ position;
当然,“animal_count.counts。$ position”将不起作用。
这是否可以在不使用UDF的情况下实现?