transform Vs Udf
程序员文章站
2022-03-23 12:41:19
在鞋厂的第一个任务,拆表。需要把订单表按照开始日期和结束日期拆分成多条记录,挺新鲜的~ transform方式,使用到了python。 (1)把hive表的数据传入,通过python按照日期循环处理,返回多条记录。 (2)生成序列表,然后采用cross join的方式,在hive端生成多条记录,再根 ......
在鞋厂的第一个任务,拆表。需要把订单表按照开始日期和结束日期拆分成多条记录,挺新鲜的~
transform方式,使用到了python。
(1)把hive表的数据传入,通过python按照日期循环处理,返回多条记录。
(2)生成序列表,然后采用cross join的方式,在hive端生成多条记录,再根据日期和序列进行处理。
udf方式,更容易操作,我个人习惯使用java。udf传入开始日期和结束日期,返回时间范围的数组。
再通过lateral view的方式处理。
另外,针对这个需求,对比了crossjoin的方式(用python先生成序列表)和udf:
(1)效率:序列表为1-100的情况,执行时间28分钟,序列表1000情况,调度卡住;
udf计算日志一个分区全量情况,执行时间20分钟,剔除无效数据后,执行时间约4分钟。
(2)udf不需要做写操作,减少了存储使用。
(3)使用udf,sql代码量少,且具有通用性。
上一篇: CorelDRAWX4怎么禁止使用鼠标滚轮缩放功能?
下一篇: linux php 时区设置的方法
推荐阅读
-
VS2013调试代码时怎么避免加载符号?
-
vs2010怎么更换默认的起始页?vs2010起始页添加命令按钮的方法
-
VS2013无法启动 IIS Express Web的解决方法(全程图解)
-
visual studio2013安装激活方法步骤 vs2013安装视频教程(附下载)
-
VS2015默认的ico怎么换?VS2015自定义ico图标的教程
-
VS2010怎么新建包含两个form的HELLO WORLD项目?
-
浅谈CSS3鼠标移入图片动态提示效果(transform)
-
vs2015/vs2013中mvc5 viewbag总是出现问题该怎么办?
-
VS2013启动调试出错的解决方法
-
vs2012如何设置字体颜色和大小?