Hi Steve, I recently solved this problem using the REST api and some python scripts. The script has a function "upgrade_job" which will cancel with savepoint, optionally upload a new jar from the local filestystem or S3, and start the job from the savepoint including any changes in parallelism. We've used Jenkins to upload new jars to S3 and automated the deployment using saltstack and the attached python script.
Please let me know if you find a better way to do this! Zack https://github.com/zackb/code/blob/master/python/dink/dink.py <https://github.com/zackb/code/blob/master/python/dink/dink.py>