从pyspark中的所有列名中删除空格

从pyspark中的所有列名中删除空格,pyspark,Pyspark,我是pySpark的新手。我收到了一个csv文件,它有大约1000列。我正在使用数据记录器。大多数这些列之间都有空格,例如总收入、总年龄等。我需要用下划线“\”的空格更新所有列名 我试过这个 克隆的.Columns中的foreachDataColumn c c、 ColumnName=String.Join,c.ColumnName.Split 但是它在Pyspark中对databricks不起作用。有两种方法可以从列名中删除空格: 1.将数据导入到spark数据框时使用架构: 例如: from

我是pySpark的新手。我收到了一个csv文件,它有大约1000列。我正在使用数据记录器。大多数这些列之间都有空格,例如总收入、总年龄等。我需要用下划线“\”的空格更新所有列名

我试过这个

克隆的.Columns中的foreachDataColumn c c、 ColumnName=String.Join,c.ColumnName.Split


但是它在Pyspark中对databricks不起作用。

有两种方法可以从列名中删除空格: 1.将数据导入到spark数据框时使用架构: 例如:

from pyspark.sql.types import StructType, StructField, IntegerType, StringType
Schema1 = StructType([StructField('field1', IntegerType(), True),
                     StructField('field2', StringType(), True),
                     StructField('field3', IntegerType(), True)])
df = spark.read.csv('/path/to/your/file.csv', header=True, schema=Schema1)
如果已将数据导入数据框,请使用dataframe.WithColumnRename函数更改列的名称:

df=df.WithColumnRenamedFieldName,fieldName


从列名中删除空格的两种方法: 1.将数据导入到spark数据框时使用架构: 例如:

from pyspark.sql.types import StructType, StructField, IntegerType, StringType
Schema1 = StructType([StructField('field1', IntegerType(), True),
                     StructField('field2', StringType(), True),
                     StructField('field3', IntegerType(), True)])
df = spark.read.csv('/path/to/your/file.csv', header=True, schema=Schema1)
如果已将数据导入数据框,请使用dataframe.WithColumnRename函数更改列的名称:

df=df.WithColumnRenamedFieldName,fieldName

我将使用select结合列表理解:

from pyspark.sql import functions as F

renamed_df = df.select([F.col(col).alias(col.replace(' ', '_')) for col in df.columns])
我将使用select结合列表理解:

from pyspark.sql import functions as F

renamed_df = df.select([F.col(col).alias(col.replace(' ', '_')) for col in df.columns])
有趣的当我使用columnRenamedFieldName、fieldname执行df=df.WithColumnRenamedFieldName时,它在databricks上对我不起作用。这就是我想用字段名替换字段名的原因。。当我使用columnRenamedFieldName、fieldname执行df=df.WithColumnRenamedFieldName时,它在databricks上对我不起作用。这就是我希望用字段名替换字段名的原因。