【问题标题】:Assign values of a column in one dataframe to a column in another dataframe将一个数据框中的列的值分配给另一个数据框中的列
【发布时间】:2021-10-21 01:38:23
【问题描述】:

我有 2 个 spark 数据帧:

Location    Date        Date_part   Sector      units   
USA         7/1/2021    7/1/2021    Cars        200     
IND         7/1/2021    7/1/2021    Scooters    180     
COL         7/1/2021    7/1/2021    Trucks      100     
Location    Date    Brands  units   values    
UK          null    brand1  400     120       
AUS         null    brand2  450     230       
CAN         null    brand3  150     34        

在做了 unionByName 之后,我得到了

Location    Date        Date_part   Sector      Brands  units   values
USA         7/1/2021    7/1/2021    Cars                200     
IND         7/1/2021    7/1/2021    Scooters            180     
COL         7/1/2021    7/1/2021    Trucks              100
UK          null        null                    brand1  400     120
AUS         null        null                    brand2  450     230
CAN         null        null                    brand3  150     34

但我预期的数据框是:

Location    Date        Date_part   Sector      Brands  units   values
USA         7/1/2021    7/1/2021    Cars                200     
IND         7/1/2021    7/1/2021    Scooters            180     
COL         7/1/2021    7/1/2021    Trucks              100
UK          null        7/1/2021                brand1  400     120
AUS         null        7/1/2021                brand2  450     230
CAN         null        7/1/2021                brand3  150     34

我需要 date_part 列中的值是所有行的数据框 1 值。 我试过这段代码:

df_result=df_final.select(df_1['date_part'], df_final["*"])

这将创建一个额外的列 date_part。 如何实现我预期的数据框?

【问题讨论】:

标签: python apache-spark pyspark


【解决方案1】:

假设Date_part 对整个数据框都是相同的,有几种解决方案可以做到这一点 - 这是一个:

from pyspark.sql import functions as F

missing_date = df_result.where(F.col("Date_part").isNotNull()).first()["Date_part"]

df_result = df_result.withColumn("Date_part", F.lit(missing_date))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-01
    • 1970-01-01
    • 2019-01-20
    相关资源
    最近更新 更多