Its hard to say for sure without seeing the other DoFns here, but it looks to me like you're yielding unkeyed output from WaitUntilDevicesExist
, and then calling a GroupByKey
(or similar operation) in GroupMessagesByShardedKey
. Instead of just yielding the message, should you be doing something like the following?
yield shard_id, message
I think Number of components does not match number of coders.
is basically saying that the coders are expecting a key/value pair, and you're only passing them a value.