当前位置:   article > 正文

pyspark、hive和dateframe临时udf使用案例_pyspark 使用 hive udf

pyspark 使用 hive udf

背景

        在我们数据开发过程中业务中有很多计算时间差值的场景,公司业务数据时间格式基本是:yyyyMMdd,,而spark或者hive提供内置函数datediff(),需要传入的时间参数格式:yyyy-MM-dd,为开发时简化代码量与代码可读性,我们通过创建临时udf可以灵活的解决该问题。

pyspark

import time

def dd_datediff(date_now, date_ago, date_type="day"):

date_now = time.strptime(str(date_now), '%Y%m%d')

date_ago = time.strptime(str(date_ago), '%Y%m%d')

# 暂时返回天数

if date_type == 'day':

day_num = int((time.mktime(date_now) - time.mktime(date_ago)) / (24 * 60 * 60))

return day_num

 

spark.udf.register("dd_datediff", lambda x, y: dd_datediff(x, y))

spark.sql("select dd_datediff(20200702, 20200629)")

效果演示:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/66465
推荐阅读
相关标签
  

闽ICP备14008679号