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

时间:2019-08-02 00:19:40

标签: pyspark

我是pySpark的新手。我已经收到一个包含约1000列的csv文件。我正在使用数据块。这些列中的大多数在“ Total Revenue”,“ Total Age”等之间都有空格。我需要使用下划线“ _”来更新所有列名称。

我已经尝试过

foreach(cloneed.Columns中的DataColumn c)     c.ColumnName = String.Join(“ _”,c.ColumnName.Split());

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

2 个答案:

答案 0 :(得分:1)

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

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)
  1. 如果您已经将数据导入到数据框中,请使用dataframe.withColumnRenamed函数更改列的名称:

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

答案 1 :(得分:0)

我会结合使用selectlist理解:

from pyspark.sql import functions as F

renamed_df = df.select([F.col(col).alias(col.replace(' ', '_')) for col in df.columns])