gpt4 book ai didi

apache-spark - PySpark 删除所有特殊字符的所有列名中的特殊字符

转载 作者:行者123 更新时间:2023-12-04 11:23:42 26 4
gpt4 key购买 nike

我正在尝试从所有列中删除所有特殊字符。我正在使用以下命令:

import pyspark.sql.functions as F

df_spark = spark_df.select([F.col(col).alias(col.replace(' ', '_')) for col in df.columns])
df_spark1 = df_spark.select([F.col(col).alias(col.replace('%', '_')) for col in df_spark.columns])
df_spark = df_spark1.select([F.col(col).alias(col.replace(',', '_')) for col in df_spark1.columns])
df_spark1 = df_spark.select([F.col(col).alias(col.replace('(', '_')) for col in df_spark.columns])
df_spark2 = df_spark1.select([F.col(col).alias(col.replace(')', '_')) for col in df_spark1.columns])
是否有一种更简单的方法可以在一个命令中替换所有特殊字符(不仅仅是上面的 5 个)?我在 Databricks 上使用 PySpark。

最佳答案

使用 回复 (正则表达式)python 中的模块,带有 list comprehension .

Example:

df=spark.createDataFrame([('a b','ac','ac','ac','ab')],["i d","id,","i(d","i)k","i%j"])

df.columns
#['i d', 'id,', 'i(d', 'i)k', 'i%j']

import re

#replacing all the special characters using list comprehension
[re.sub('[\)|\(|\s|,|%]','',x) for x in df.columns]
#['id', 'id', 'id', 'ik', 'ij']

df.toDF(*[re.sub('[\)|\(|\s|,|%]','',x) for x in df.columns])
#DataFrame[id: string, id: string, id: string, ik: string, ij: string]

关于apache-spark - PySpark 删除所有特殊字符的所有列名中的特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62441435/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com