pyspark-sql - 在 PySpark 中使用爆炸函数之前,是否可以将字符串类型列更改为数组类型列?
问题描述
我想知道是否可以将字符串类型的“数据”列更改为数组类型,但数字之间使用逗号。
#+----------+---------------------+------------+
#|date |month |data |
#+----------+---------------------+------------+
#|2015 |08 |01001111 |
#|2016 |06 |011111101 |
#|2017 |02 |0101011100 |
#|2018 |11 |01101111 |
#+----------+---------------------+------------+
我需要下一个:
#+----------+---------------------+------------------------+
#|date |month |data |
#+----------+---------------------+------------------------+
#|2015 |08 | [0,1,0,0,1,1,1,1] |
#|2016 |06 | [0,1,1,1,1,1,1,0,1] |
#|2017 |02 | [0,1,0,1,0,1,1,1,0,0] |
#|2018 |11 | [0,1,1,0,1,1,1,1] |
#+----------+---------------------+------------------------+
我需要这个改变的原因是因为我必须使用poseexplode函数,它适用于数组。
提前致谢。
解决方案
是的,使用自定义函数(UDF):
df = df.withColumn("data", F.udf(lambda x: x.split(','))('data'))
推荐阅读
- php - 如何获取消息返回 AJAX PHP JSON
- angular - 如何在不使用 XPath 的情况下读取 Protractor 表中的特定行?
- django - 使用下拉菜单测试我的网站时的 Django 问题
- php - 根据用户的id将用户重定向到不同的页面
- python - python3中的lxml问题
- amazon-web-services - 减小 EBS 根卷的大小 - Windows
- batch-file - 如何使用正则表达式使用批处理脚本搜索和替换文本
- javascript - 如何将导航添加到屏幕而不显示在抽屉中
- angular - Angular Material 表的问题 - 分页和排序
- typescript - 打字稿缩小到相同类型缩小到从不