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

1 pyspark

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

我试过这个

foreach(DataColumn c in cloned.Columns) c.ColumnName = String.Join("_", c.ColumnName.Split());

但它在数据块上的 Pyspark 中不起作用。

gmd*_*mds 6

我会selectlist理解结合使用:

from pyspark.sql import functions as F

renamed_df = df.select([F.col(col).alias(col.replace(' ', '_')) for col in df.columns])
Run Code Online (Sandbox Code Playgroud)


小智 2

删除列名中的空格的两种方法: 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)
Run Code Online (Sandbox Code Playgroud)
  1. 如果您已经将数据导入到数据框中,请使用 dataframe.withColumnRenamed 函数更改列的名称:

    df=df.withColumnRenamed("字段名称","fieldName")