Amazon web services Pyspark在多个列上使用AWS胶水连接创建副本
我在AWS Glue中有两个表,表_1和表_2,它们具有几乎相同的模式,但是,表_2有两个额外的列。我试图在相同的列上将这两个表连接在一起,并添加表2所独有的列,其中“旧”数据的值为空,其模式不包括这些值 目前,我可以使用类似于以下的方法连接两个表:Amazon web services Pyspark在多个列上使用AWS胶水连接创建副本,amazon-web-services,join,amazon-s3,pyspark,Amazon Web Services,Join,Amazon S3,Pyspark,我在AWS Glue中有两个表,表_1和表_2,它们具有几乎相同的模式,但是,表_2有两个额外的列。我试图在相同的列上将这两个表连接在一起,并添加表2所独有的列,其中“旧”数据的值为空,其模式不包括这些值 目前,我可以使用类似于以下的方法连接两个表: joined_table = Join.apply(table_1, table_2, 'id', 'id') 其中,第一个“id”是表_1中的id列,第二个“id”是表_2中的id列。此调用成功地将该表合并为一个表,但是,生成的合并表具有匹配列
joined_table = Join.apply(table_1, table_2, 'id', 'id')
其中,第一个“id”是表_1中的id列,第二个“id”是表_2中的id列。此调用成功地将该表合并为一个表,但是,生成的合并表具有匹配列的重复字段
我的两个问题是:
我发现我需要重命名表_1中的列,然后在我的Join.apply调用后缺少对.drop_字段的调用,以从联接表中删除旧列 此外,您可以传入列名列表,而不是我试图在问题中使用的单个“id”列
joineddata = Join.apply(frame1 = table1, frame2 = table2, keys1 = ['id'], keys2 = ['id'], transformation_ctx = 'joinedData')
aws胶水中的连接不处理重复项。您需要转换为数据帧,然后删除副本
如果有重复项,请尝试以下操作:
selectedFieldsDataFrame = joineddata.toDF()
selectedFieldsDataFrame.dropDuplicates()