Mysql
 sql >> Database >  >> RDS >> Mysql

Spark:la lettura di una grande tabella MySQL in DataFrame non riesce

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);