У меня есть фрейм данных в Glue. Рассмотрим следующий формат:
a,b,c,d,e
1,2,3,4,5
3,4,5,6,7
Теперь я хочу применить встроенное преобразование Клея для столбцов, чтобы заменить значение.
У меня есть функция custom_sum
, которая принимает значение в столбце d и e и предыдущие значения тех же столбцов, что и входные данные, и возвращает новое значение, которое я добавить в качестве нового значения столбца
В этом случае для первой строки потребуются значения 4 и 5 (так как предыдущих значений не существует)
и для второй строки будут приняты значения 6 , 7 и предыдущие значения 4 и 5 и возврат скажем 22 * 1028 *
Из документации мне кажется, что я могу использовать 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")