遇到的问题

近日分析师提供一批样本数据,需要根据id和时间进行匹配,样本数据格式如下:

但是时间数仓中的数据时间却是年月日时分秒拼接而成的字符串,导致两者匹配失败,所以需要转换,数仓的数据:

解决问题分析过程:

  1. 不能使用hive 自带的date_format方法。 因为表中的月日时分秒前面没有补0,使用date_format会造成数据失真,例如下图时分秒的值是错误的:
    (因为是时分秒不全,所以转换之前先拼接 :00 )

  2. 自定义一个spark的udf去实现,我用的python

from pyspark.sql.functions import udf
from pyspark.sql.types import StructType, StructField, StringType# 实现过程 ,根据空格,冒号,斜杠分割,不够两位数的前面补0,然后再拼接起来,最后拼接00就可以
def get_new_applydatetime(x):return '{}00'.format(''.join([str(z).zfill(2)  for i in x.split('/') for j in i.split(' ')  for z in j.split(':')  ]))# 方法一:注册成spark的udf
get_new_applydatetime_udf = udf(get_new_applydatetime,StringType())
df_sample = df_sample.withColumn("user_applydatetime_raw",get_new_applydatetime_udf("user_applydatetime"))# 方法二:注册成spark-sql可用的udf
spark.udf.register("user_applydatetime_hive",get_new_applydatetime)
df_sample.createOrReplaceTempView('t1')
spark.sql("""select user_applydatetime_hive(user_applydatetime) from t1 """).show()

最终实现的结果:

Hive将带有斜杆的时间拼接成字符串相关推荐

  1. oracle sql 拼接遇到参数值,sql 将某一列的值拼接成字符串

    ) set @str='' -- 必须先赋值 ))+',' from( select [objid],sfrq from tablename ) tb order by tb.sfrq print @ ...

  2. java list 拼接 字符串数组_把数组所有元素排序,并按照“参数=参数值”的模式用“”字符拼接成字符串...

    /** * 把数组所有元素排序,并按照"参数=参数值"的模式用"&"字符拼接成字符串 * @param params 需要排序并参与字符拼接的参数组 * ...

  3. C语言基础:时间转换成字符串 strftime的代码

    将内容过程中经常用的一些内容段做个记录,下边内容段是关于C语言基础:时间转换成字符串 strftime的内容,希望能对大伙有一些用处. #include <stdio.h> #includ ...

  4. JSP EL表达式 将数组拼接成字符串

    前言 el表达式拼接字符串 将数组拼接成字符串 EL表达式拼接字符串的方法 使用String类型的concat方法. ${jbstr.concat(',')} 示例 有一个数组(jbList),需要将 ...

  5. mysql 将查询所得结果集的某一字段拼接成字符串

    前言 mysql 5.5.40 将查询所得结果集的某一字段拼接成字符串 将菜单树的所有根节点(parent_id=0)的id拼接成字符串. sql 代码: select GROUP_CONCAT(me ...

  6. MySQL中将查询所得结果集的某一字段拼接成字符串

    group_concat:将查询所得结果集的某一字段拼接成字符串 SELECT GROUP_CONCAT(t.cabinet_no SEPARATOR ';') FROM tb_stockorder ...

  7. SqlServer中将某列的值拼接成字符串

    应用场景: 向用户表中查询出需要发短信的管理员的手机号码,拼接成字符串批量处理. 将内容转换为xml格式内容 查询语句: SELECT substring(NewCol,0,LEN(T.NewCol) ...

  8. PHP 数组拼接成字符串

    PHP[知识分享] 数组拼接成字符串 <?php // 格式: [二维数组] Array ( [0] => Array ( [topicid] => 1 ) [1] => Ar ...

  9. 前端JS数组问题: 数组去重, 字符串分割成数组, 数组拼接成字符串

    1. 数组去重: Array.from(new Set(arr_name)) let arr1 = ['张三','李四','王五','李四','赵六','张三'];let arr2 = Array.f ...

最新文章

  1. mysql index 使用方法_mysql index索引使用方法
  2. java二维码生成并可以转换
  3. 昨夜洪峰抵达主城,重庆人是这么过的......
  4. # 20180908 2018-2019-2 《密码与安全新技术专题》第9周作业
  5. strictmath_Java StrictMath cbrt()方法与示例
  6. oracle11 如何启动企业管理器
  7. 2023联考管综论说文阅卷标准及提分计划:附2010-2022年真题
  8. Cookie的设置域名domain与跨域的问题
  9. DevOps 转型实践
  10. Python·pip升级失败报异常之解决方案
  11. 太阳能光伏发电基础知识科普教学QY-TF11
  12. bigemap如何导入矢量边界范围下载地图(KML/KMZ/SHP)
  13. 本科3-4万、硕士6万、博士8万!杭州这个区发力引人
  14. [ZT]“你可以安全关机”解决方案
  15. 360手机刷机:360N7lite刷机
  16. org.dom4j 解析XML
  17. 第二证券|抖音发布三季度安全透明度报告,整治贩卖焦虑广告近3万条
  18. “国航”助飞旅日华侨华人子女说中文的梦想
  19. 03. Vuepress1.x 设置 favicon.ico 图标
  20. 要到九寨旅游的朋友我对你有话要说哦!!!933

热门文章

  1. 指数 | 2020年6月北京BGP机房网络质量评测报告
  2. linux系统加exfat驱动
  3. solidworks2022教程
  4. 天天团购--源码目录结构
  5. C++不好找工作?C++工作现在需求怎么样,如何应对
  6. 前方高能提示:SDCC 2017之区块链技术实战线上峰会开播倒计时
  7. opencv图像处理:一、颜色空间转换
  8. latex 伪代码 algorithm2e方式
  9. 算法总结与归纳ForLiXinBo
  10. 8-24 DAIRY