python - 如何使用 spark/pyspark 从字符串中的每个元素创建新列
问题描述
我正在尝试在 Spark(使用 pyspark)中获取具有字符串值(如“A1”、“C2”和“B9”)的列,并使用字符串中的每个元素创建新列。如何从字符串中提取值以创建新列?
我该如何转这个:
| id | col_s |
|----|-------|
| 1 | 'A1' |
| 2 | 'C2' |
进入这个:
| id | col_s | col_1 | col_2 |
|----|-------|-------|-------|
| 1 | 'A1' | 'A' | '1' |
| 2 | 'C2' | 'C' | '2' |
我一直在浏览文档,但没有成功。
解决方案
在这里发布后5分钟我能够回答我自己的问题......
split_col = pyspark.sql.functions.split(df['COL_NAME'], "")
df = df.withColumn('COL_NAME_CHAR', split_col.getItem(0))
df = df.withColumn('COL_NAME_NUM', split_col.getItem(1))
推荐阅读
- ffmpeg - 无法添加过滤器:a 到 ffplay
- c++ - 由于时间限制,我的代码未通过测试,如何减少代码工作所需的时间?
- kotlin - kotlin flow onEach 没有被触发
- salesforce - Twilio Salesforce API
- file - .ipynb Julia files to .jl files
- mysql - MSSQL 到 MySQL (5.7) ROW_NUMBER
- excel - 如何配置 Excel 单元格以方便地显示“#h #min”?
- bookmarks - BuildFire:书签不保存
- mysql - 查询优化到 mysql 中的日期
- laravel - Vue.js + vue-router + axios + Laravel。无法按 id 检索值