It depends on what you touched and what you were standing in when it shocked you.
Did it trip the gfci when it shocked you?
If it was the water, then it is most likely a faulted heater, which should trip your gfci if on a properly grounded circuit, before you touch it. So you either have a bad gfci or an ungrounded circuit too.
However I have been shocked by ground current as well. Electrical systems ground at transformers and usually at the main panel as well, and current flows through the earth. If the spa water and ground wire provides a lower resistance path (perhaps due to dry ground) then there will be voltage present between the earth and the spa ground wire, and you'll get bit if you touch the earth and the water simultaneously.
Pics of everything.