📌  相关文章
📜  如何在 PySpark 数据框中添加多列?

📅  最后修改于: 2022-05-13 01:54:56.632000             🧑  作者: Mango

如何在 PySpark 数据框中添加多列?

在本文中,我们将看到在 PySpark Dataframes 中添加多列的不同方法。

让我们创建一个示例数据框进行演示:

使用的数据集: Cricket_data_set_odi

Python3
# import pandas to read json file
import pandas as pd
  
# importing module
import pyspark
  
# importing sparksession from pyspark.sql
# module
from pyspark.sql import SparkSession
  
# creating sparksession and giving an app name
spark = SparkSession.builder.appName('sparkdf').getOrCreate()
  
  
# create Dataframe
df=spark.read.option(
    "header",True).csv("Cricket_data_set_odi.csv")
  
# Display Schema
df.printSchema()
  
# Show Dataframe
df.show()


Python3
df.withColumn(
    'Avg_runs', df.Runs / df.Matches).withColumn(
    'wkt+10', df.Wickets+10).show()


Python3
# Using select() to Add Multiple Column
df.select('*', (df.Runs / df.Matches).alias('Avg_runs'),
          (df.Wickets+10).alias('wkt+10')).show()


Python3
from pyspark.sql.functions import col, lit
  
  
df.select('*',lit("Cricket").alias("Sport")).
withColumn("Fitness",lit(("Good"))).show()


输出:



方法一:使用 withColumn()

withColumn() 用于在 DataFrame 上添加新列或更新现有列

代码:

蟒蛇3

df.withColumn(
    'Avg_runs', df.Runs / df.Matches).withColumn(
    'wkt+10', df.Wickets+10).show()

输出:



方法 2 :使用 select()

您还可以使用 select 添加多个列。

代码:

蟒蛇3

# Using select() to Add Multiple Column
df.select('*', (df.Runs / df.Matches).alias('Avg_runs'),
          (df.Wickets+10).alias('wkt+10')).show()

输出 :

方法 3:使用 withColumn() 和 select() 向 DataFrame 添加常量多列

让我们在下面的代码中使用 lit() SQL函数创建一个具有常量值的新列。 Pyspark 中的 lit()函数用于通过分配常量或字面量值在 Pyspark 数据帧中添加新列。

蟒蛇3

from pyspark.sql.functions import col, lit
  
  
df.select('*',lit("Cricket").alias("Sport")).
withColumn("Fitness",lit(("Good"))).show()

输出: