我正在尝试将
dictionary_of_columns
附加到两个 df 共有的列。
我的代码:
list_of_columns = []
for column in dfUpdates.schema:
list_of_columns.append(column.jsonValue()["name"].upper())
dictionary_of_columns = {}
dictionary_of_columns['BK_COLUMNS'] = []
dictionary_of_columns['COLUMNS'] = []
for row in df_metadata.dropDuplicates(['COLUMN_NAME', 'KeyType']).collect():
if row.KeyType == 'PRIMARY KEY' and row.COLUMN_NAME.upper() in list_of_columns:
dictionary_of_columns['BK_COLUMNS'].append(row.COLUMN_NAME.upper())
elif row.KeyType != 'PRIMARY KEY' and row.COLUMN_NAME.upper() in list_of_columns:
dictionary_of_columns['COLUMNS'].append(row.COLUMN_NAME.upper())
但是当我不匹配时。
dict_of_columns
里面有更多的专栏。
伪代码将如下所示。我创建集合作为两个数据框中的列,然后取出它们共有的元素。
你可以调整它以满足你的需要,因为我看到你也过滤主键。
dfUpdates_cols = set(dfUpdates.columns)
df_metadata_cols = set(df_metadata.columns)
print(dfUpdates_cols & df_metadata_cols)