我在Glue中有一个数据框。考虑以下格式:
a,b,c,d,e
1,2,3,4,5
3,4,5,6,7
现在,我想在列上应用内置的Glue转换来转换值。
我有一个函数custom_sum
,该函数将列 d 和 e 下的值以及同一列的先前值作为输入,并返回一个新值值,我将其添加为新的列值
在这种情况下,对于第一行,它将采用值 4 和 5 (因为之前没有值)
,第二行将使用值 6 , 7 和先前的值 4 和 5 ,返回说 22
从文档中,我认为我可以使用Map进行转换。
我无法弄清楚如何获取上一行并将其传递给map操作。
下面是一小段代码:
mapped_columns = ApplyMapping.apply(frame=input_dynamic_frame,
mappings=[("col1", "string", "a", "int"),("col2", "string", "b", "int"),("col3", "string", "c", "int"),("col4", "string", "d", "int"),("col5", "string", "e", "int")],transformation_ctx="mapped_columns")
selected_fields = SelectFields.apply(frame=mapped_columns,
paths=["a", "b", "c", "d", "e"],transformation_ctx="selected_fields")
def custom_sum(dynamicRecord):
"""
take current row 'd' and 'e' columns and previous row 'd' and 'e' columns
"""
return dynamicRecord
output_mapping = Map.apply(frame = selected_fields, f = custom_sum, transformation_ctx = "output_mapping")