Ieee Transactions on Parallel and Distributed Systems, Xxxx 1 Partial Key Grouping: Load-balanced Partitioning of Distributed Streams