我有两个大型的Hive表,比如TableA和TableB (它们是从不同的源加载的)。
这两个表具有几乎相同的表结构/列,具有相同的分区列,这是以字符串形式存储的日期。
我需要根据某些(相同的)筛选标准从每个表中筛选记录。
这些表中有一些包含“代码”的列,需要对这些列进行查找才能得到相应的“值”。
有8到10个这样的查找表,例如,LookupA、LookupB、LookupC等。
现在,我需要:
我是蜂巢的初学者。请让我知道我能做什么。谢谢。
注:我能应付到桌子合并为止。需要一些关于查找和转换的指导。
发布于 2016-05-22 09:59:01
基本上,请按照以下步骤进行查找,
custom User Defined function(UDF),这意味着您必须在内部创建一个查找、打包并添加到Hive中的Java,如下所示:
添加JAR /home/ubuntu/lookup.jar采用联接方法,您可以很好地通过源代码和查找表的查找代码进行连接,如下所示
select a.key,b.lookupvalue
table a join lookuptable b
where a.key=b.lookupKey现在对于Date Transformation,您可以在Hive中使用Date functions。
发布于 2016-12-09 06:26:20
对于上述问题,请执行以下步骤:
表B也是如此。
假设codesA的某些值在查找表中没有值,那么:
z = foreach b generate codesA as codesA, valueA is null ? '0' as valuesA.(将值中的所有空值替换为0)。
ToString(CurrentTime(),'yyyy-MM-dd')我希望它能解决你的问题。如果有任何问题,请告诉我。
https://stackoverflow.com/questions/37370082
复制相似问题