Emma Watson plays Daniel Plainview in There Will be Blood