L'API Spark JDBC sembra eseguire il fork per caricare tutti i dati dalla tabella MySQL alla memoria senza. Quindi, quando provi a caricare una tabella di grandi dimensioni, ciò che dovresti fare è utilizzare prima i dati di clonazione dell'API Spark su HDFS (è necessario utilizzare JSON per mantenere la struttura dello schema), in questo modo:
spark.read.jdbc(jdbcUrl, tableName, prop)
.write()
.json("/fileName.json");
Quindi puoi lavorare su HDFS invece normalmente.
spark.read().json("/fileName.json")
.createOrReplaceTempView(tableName);