¿Cómo usar la fuente JDBC para escribir y leer datos en (Py) Spark?

El objetivo de esta pregunta es documentar:

pasos necesarios para leer y escribir datos utilizando conexiones JDBC en PySpark

posibles problemas con las fuentes JDBC y las soluciones conocidas

Con pequeños cambios, estos métodos deberían funcionar con otros lenguajes compatibles, incluidos Scala y R.