根据多行AWS Glue

时间:2019-04-17 14:05:20

标签: amazon-web-services aws-glue

我在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")

0 个答案:

没有答案