1 "hash" is double-SHA256 applied to a block header. Because some parts can be pre-calculated, and some parts ignored for our application, it is in reality equivalent to processing approximately 1.9 SHA256 blocks.
There is an easy relation between difficulty and block rate. For each block the network finds, on average 2^48/65535 (=4295032833) times the difficulty hashes have been performed.
There is a relation between the difficulty and the network hash rate as well, assuming you know how often a block is found. Assuming there is one block every 10 minutes (as the network aims for), there are difficulty*2^48/65535/600 hashes done per second (=7158388*difficulty). If there are more blocks found than 1 per ten minutes, the rate is proportionally higher.
Currently (at difficulty 244139), this means that each block requires on average a whopping 1048587089228612 hashes to be performed.