我是pySpark的新手。我已经收到一个包含约1000列的csv文件。我正在使用数据块。这些列中的大多数在“ Total Revenue”,“ Total Age”等之间都有空格。我需要使用下划线“ _”来更新所有列名称。
我已经尝试过
foreach(cloneed.Columns中的DataColumn c) c.ColumnName = String.Join(“ _”,c.ColumnName.Split());
但它在数据块上的Pyspark中不起作用。
答案 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)
如果您已经将数据导入到数据框中,请使用dataframe.withColumnRenamed函数更改列的名称:
df = df.withColumnRenamed(“字段名称”,“ fieldName”)
答案 1 :(得分:0)
我会结合使用select
和list
理解:
from pyspark.sql import functions as F
renamed_df = df.select([F.col(col).alias(col.replace(' ', '_')) for col in df.columns])