Python Spark从数据框中提取字符

2024-02-11

我在 Spark 中有一个数据框,如下所示:

ID     | Column
------ | ----
1      | STRINGOFLETTERS
2      | SOMEOTHERCHARACTERS
3      | ANOTHERSTRING
4      | EXAMPLEEXAMPLE

我想做的是从列中提取前 5 个字符加上第 8 个字符并创建一个新列,如下所示:

ID     | New Column
------ | ------
1      | STRIN_F
2      | SOMEO_E
3      | ANOTH_S
4      | EXAMP_E

我无法使用以下编解码器,因为列中的值不同,并且我不想在特定字符上分割,而是在第 6 个字符上分割:

import pyspark
split_col = pyspark.sql.functions.split(DF['column'], ' ')
newDF = DF.withColumn('new_column', split_col.getItem(0))

谢谢大家!


使用这样的东西:

df.withColumn('new_column', concat(df.Column.substr(1, 5),
                                   lit('_'),
                                   df.Column.substr(8, 1)))

这个使用函数substr https://spark.apache.org/docs/1.6.1/api/python/pyspark.sql.html#pyspark.sql.Column.substr and concat https://spark.apache.org/docs/1.6.1/api/python/pyspark.sql.html#pyspark.sql.functions.concat

这些功能将解决您的问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python Spark从数据框中提取字符 的相关文章

随机推荐