Dataset[Row] 转为Array[String]

本文介绍了在Spark开发中,如何将DataFrame的一列数据转换为Array[String],并处理其中的空字符串、特殊字符和大小写问题。通过实例展示了将日期字段列进行转大写、去重、去空字符串和去“为空”字符的操作,最终形成可用于udf()函数的数组。
摘要由CSDN通过智能技术生成

写在前面

在实际开发中,我遇到一个场景:将源数据读取进来,加载为DataFrame之后,其中一个处理步骤是,需要将某一列的数据单独提取出来作为一个数组,然后传递给后面的udf()函数。

需求:读取的是日期字段列,因为在数据仓库中,各个数据表的数据形态是不一致的,每种数据形态都有自己的日期字段,一般来说:比如,快照表我们的日期字段可能是DW_XX_DT。这个就看自己公司如何定义了。

我这里遇到的情况是:日期字段列中有空字符串""(读出来是null),还有中文字符"为空",然后还有DW_XX_DT 或 Dw_xx_Dt 这种大小写。

类似这种:把上面这个转成下面这个
在这里插入图片描述

最后得到的是:转大写 、 去重 、去空字符串 、 去"为空"字符 的一个数组。

我这里封装成了一个方法:

  def getTableFiledArray(t :DataFrame): mutable.Buffer[String] = {
   

    var returnTableFiledArray:mutable.Buffer[String] =  t.<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值