首页 > 解决方案 > 如何使用 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'  |

我一直在浏览文档,但没有成功。

标签: pythonapache-sparkpysparkapache-spark-sql

解决方案


在这里发布后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))

推荐阅读