我在AWS Glue中有两个表,table_1和table_2具有几乎相同的模式,但是,table_2有两个额外的列。我试图在相同的列上将这两个表连接在一起,并添加table_2唯一的列,其中“旧”数据的空值为其架构不包含这些值。
目前,我可以使用类似于:
的内容加入这两个表joined_table = Join.apply(table_1, table_2, 'id', 'id')
其中第一个'id'是table_1中的id列,第二个'id'是table_2中的id列。此调用成功将表连接成一个,但是,生成的joined_table具有匹配列的重复字段。
我的两个问题是:
答案 0 :(得分:2)
我发现我需要重命名table_1中的列,然后在我的Join.apply调用之后错过了对.drop_fields的调用,以从连接表中删除旧列。
此外,您可以传入列名列表,而不是单个' id'我试图在问题中使用的专栏。
答案 1 :(得分:0)
joineddata = Join.apply(frame1 = table1, frame2 = table2, keys1 = ['id'], keys2 = ['id'], transformation_ctx = 'joinedData')
aws胶水中的联接不处理重复项。您需要转换为数据框,然后删除重复项。
如果重复,请尝试以下操作:
selectedFieldsDataFrame = joineddata.toDF()
selectedFieldsDataFrame.dropDuplicates()