【发布时间】:2022-02-26 18:33:54
【问题描述】:
我怀疑这是否可能。
让我们谈谈我的要求,我有多个主键的tableA。
primary_key: ['user_id', 'role_id']这样的多个表有超过2个Pks,所有Pks定义在一个json中如下图。
{ "sourcetable": "app_setting",
"schema": "dbo",
"primarykey": [
"application_code",
"region_code",
"country_code",
"app_setting_key",
"app_setting_value"
]
}
在同一张桌子上,我定义了 2 个数据框,
Df1 = spark.read.parquet(tableA) # complete table
df2 = Df1.filter((df1.user_id == 1) & (df1.user_id==1)) # df2 is filter Df
现在我想加入这些 df1 和 df2
join_Df= Df1.join(df2 , df2[primary_key] == Df1["primary_key"], "inner")
但我得到了错误:
in join assert isinstance(on[0], Column), "on should be Column or list of Column" AssertionError: on should be Column or list of Column
这种加入是否可以通过 PK 列表进行?
【问题讨论】:
标签: python apache-spark pyspark apache-spark-sql pyspark-dataframes