sql >> Database >  >> RDS >> Mysql

Het converteren van mysql-tabel naar spark-gegevensset is erg traag in vergelijking met hetzelfde uit een csv-bestand

Dit probleem is meerdere keren behandeld op StackOverflow:

en in externe bronnen:

dus gewoon om te herhalen - standaard DataFrameReader.jdbc distribueert geen gegevens of leest. Het gebruikt een enkele thread, een enkele uitvoerder.

Leesteksten verspreiden:

  • gebruik bereiken met lowerBound / upperBound :

    Properties properties;
    Lower
    
    Dataset<Row> set = sc
        .read()
        .option("partitionColumn", "foo")
        .option("numPartitions", "3")
        .option("lowerBound", 0)
        .option("upperBound", 30)
        .option("url", url)
        .option("dbtable", this.tableName)
        .option("driver","com.mysql.jdbc.Driver")
        .format("jdbc")
        .load();
    
  • predicates

    Properties properties;
    Dataset<Row> set = sc
        .read()
        .jdbc(
            url, this.tableName,
            {"foo < 10", "foo BETWWEN 10 and 20", "foo > 20"},
            properties
        )
    


  1. hibernate - Postgres-doellijsten kunnen maximaal 1664 items bevatten

  2. Hoe DATETIME naar TIMESTAMP in mysql te converteren?

  3. Wat is de beste manier om meerdere rijen in te voegen in PHP PDO MYSQL?

  4. PostgreSQL-database herstellen met java