sql >> Databasteknik >  >> RDS >> Mysql

Att konvertera mysql-tabell till sparkdatauppsättning är mycket långsam jämfört med samma från csv-fil

Det här problemet har täckts flera gånger på StackOverflow:

och i externa källor:

så bara för att upprepa - som standard DataFrameReader.jdbc distribuerar inte data eller läser. Den använder enkel tråd, enkel exektuor.

För att distribuera läser:

  • använd intervall med 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. CodeIgniter listfält

  2. Så här lägger du till vertikala gränser till ditt SQL*Plus / SQLcl-utmatningsnät

  3. Mysql Master Master Replication

  4. DataGridView visar inte mina kolumner