为了账号安全,请及时绑定邮箱和手机立即绑定

根据使用另一列的正则表达式提取的内容,有条件地在 spark 数据框中填充新列

根据使用另一列的正则表达式提取的内容,有条件地在 spark 数据框中填充新列

哈士奇WWW 2021-10-19 16:54:17
我有一个包含 json 文件内容的 spark 数据框。我需要创建一个新列,该列根据另一列的内容有条件地填充。假设我有一列包含一些数字,我的新列将根据这些数字的值填充(例如:第一列的数字小于 5,我的新列将填充字符串“小于 5” ,如果该值大于 5,则新列将填充“大于 5”。我知道我可以用 when 函数做这样的事情:file.withColumn('newcolumn', \                F.when(file.oldColumn < 5, 'Lower than five') \                .when(file.oldColumn > 5, 'Greater than five').show()但是,如果“oldColumn”不仅包含整数,而且包含我需要从中提取整数的字符串,该怎么办:例如“PT5M”,我需要提取 5,我需要考虑像“PTM”这样的字符串,它不包含数字为 0到目前为止,我设法使用 regexp_extract 提取了我的第一列的数字,但我正在努力将空值变为 0示例,其中 1 是原始列,2 是新列:+-------+-------------------+|1      |  2                |+-------+-------------------+|PT5M   |  Lower than five  |   |PT10M  |  Greater than five|    |PT11M  |  Greater than five|        +-------+-------------------+谢谢你的帮助!
查看完整描述

3 回答

  • 3 回答
  • 0 关注
  • 162 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信