【发布时间】:2021-11-25 03:46:18
【问题描述】:
我有如下两个数据框
DF1 - 包含过去 1 个月的数据
root
|-- id: integer (nullable = true)
|-- name: string(nullable = true)
|-- age: string (nullable = true)
|-- createdDate: long (nullable = false)
|-- school: string(nullable = true)
DF2 - 包含今天的数据
root
|-- id: integer (nullable = true)
|-- name: string(nullable = true)
|-- age: string (nullable = true)
|-- createdDate: long (nullable = false)
|-- school: string(nullable = true)
由于这些数据框包含不同学校学生的详细信息,因此应始终使用 id 和学校列来识别唯一行。我想根据 id 和学校从 DF1 中删除 DF2 中可用的所有学生详细信息。我不确定如何使用 pyspark 来做到这一点。
joined_df = DF1.join(DF2, (DF1.id == DF2.id) & (DF1.school == DF2.school).select('*')
joined_df = joined_df.dropDuplicates()
我写了上面的代码。但后来我意识到这只会删除重复项,它将原始数据集留在 DF1 中。我怎样才能达到我的要求?
【问题讨论】:
标签: python dataframe apache-spark pyspark