Nie jestem pewien, dlaczego powyższa odpowiedź nie zadziałała dla mnie, ale pomyślałem, że mogę również podzielić się tym, co faktycznie działało dla mnie podczas uruchamiania pyspark z notebooka jupyter (Spark 2.3.1 - Python 3.6.3):
from pyspark.sql import SparkSession
spark = SparkSession.builder.config('spark.driver.extraClassPath', '/path/to/postgresql.jar').getOrCreate()
url = 'jdbc:postgresql://host/dbname'
properties = {'user': 'username', 'password': 'pwd'}
df = spark.read.jdbc(url=url, table='tablename', properties=properties)