Do records with the same key in two RDDs repartitioned by key reside in the same node in spark?

I have two RDDs named "data" and "model", they are repartitioned by key described as below :

Does the tuple records with the same key reside in the same node in my cluster ?

Should it save IO cost in shuffle operation, such as "data.cogroup(model)" , if it comes true ?

The tuple of one partition is always on the same node because a partition itself is impartible. So if you do a groupBy or write your own partitioner which partitions by key, all records with the same key/partition number will be shuffled to the same node.