[SPARK-2871] [PySpark] Add missing API

Try to bring all Java/Scala API to PySpark.
Good point. Then we can move all the pickle stuff into SerDeUtil in another PR.