Clemens
07/20/2021, 4:26 PMrun_always
trigger to run, well, always.
Example code in threadClemens
07/20/2021, 4:26 PM@task
def n_array(n):
return [1] * n
@task
def n_plus_one_array(n):
return [1] * (n + 1)
@task(trigger=always_run)
def log_number(number):
logger = prefect.context.get("logger")
<http://logger.info|logger.info>(number)
return number
with Flow("Test Flow") as flow:
n = Parameter("n", default=5)
array1 = n_array(n)
one_result = log_number.map(array1)
array2 = n_plus_one_array(n)
two_result = log_number.map(
array2,
upstream_tasks=[one_result],
)
Clemens
07/20/2021, 4:32 PMn=1
Clemens
07/20/2021, 4:33 PMlog_number
task is called it only gets executed len(array1)
times, while it should be processed len(array2)
times.Kevin Kho
n=1
(when using flow.run). Did you mean n=0
?Clemens
07/20/2021, 4:36 PMn=0
of courseKevin Kho
[2021-07-20 12:35:31-0400] INFO - prefect.TaskRunner | Task 'log_number': Starting task run...
[2021-07-20 12:35:31-0400] INFO - prefect.TaskRunner | Task 'log_number': Finished task run for task with final state: 'Mapped'
[2021-07-20 12:35:31-0400] INFO - prefect.TaskRunner | Task 'log_number': Starting task run...
[2021-07-20 12:35:31-0400] INFO - prefect.TaskRunner | Task 'log_number': Finished task run for task with final state: 'Mapped'
But I’m curious what you’re expecting to be logged if the list is empty and there is nothing to map over?Clemens
07/20/2021, 4:38 PMdef n_plus_one_array(n):
return [1] * (n + 1)
Kevin Kho
i-th
element of each upstream map to the downstream map and the uneven lengths means that an element gets left out.
I think this is by design though to chain consecutive mapped operations together so I suspect you will need a reduce step since these are independent. Let me confirm with the team.Kevin Kho
Clemens
07/20/2021, 4:45 PMClemens
07/20/2021, 4:47 PMKevin Kho
with Flow("Test Flow") as flow:
one_result = log_number.map([0,1,2,3])
two_result = log_number.map(
[0,1,2,3,4],
upstream_tasks=[unmapped(one_result)],
)
Clemens
07/20/2021, 4:56 PMClemens
07/20/2021, 4:57 PM