A nature lowers a stat by 10%.
A characteristic (it's not called personality) simply indicates what the highest stat of your Pokemon is.
There's no cancelling out; your Riolu's sp. atk will still be 10% lower than what it would be without the Impish nature.