Hadoop PySpark是否使用一条语句更改多个列?

Hadoop PySpark是否使用一条语句更改多个列?,hadoop,apache-spark,pyspark,Hadoop,Apache Spark,Pyspark,基本上,我有一个DataFrame,它大约有80列,我需要根据一些case语句动态地更改大约(10-15)行。我正在使用df.WithColumn方法进行更改。然而,它变得非常昂贵,因为我需要调用这些案例语句10-15次(据我所知,它将在整个df中循环15次)。如何改进它,以便对df中的每一行执行df.withcolumn?这样,我就可以为df的每一行添加15个case语句,而且成本不会太高。或者请提出一个替代方案 df.withColumn('FY',F.when(df['ID'].s

基本上,我有一个DataFrame,它大约有80列,我需要根据一些case语句动态地更改大约(10-15)行。我正在使用
df.WithColumn
方法进行更改。然而,它变得非常昂贵,因为我需要调用这些案例语句10-15次(据我所知,它将在整个df中循环15次)。如何改进它,以便对
df
中的每一行执行
df.withcolumn
?这样,我就可以为df的每一行添加15个case语句,而且成本不会太高。或者请提出一个替代方案

    df.withColumn('FY',F.when(df['ID'].substr(5,2).isin({'11','12'}),
      df['ID'].substr(1,4).cast("integer") + 1).
      otherwise(df['ID'].substr(1,4)).cast("integer"))



.
.
.
.
.
.
.

    df.withColumn('FY1',F.when(df['ID1'].substr(5,2).isin({'11','12'}),
      df['ID'].substr(1,4).cast("integer") + 1).
      otherwise(df['ID1'].substr(1,4)).cast("integer"))