Mysql
 sql >> база данни >  >> RDS >> Mysql

Преобразуването на mysql таблица в набор от данни на spark е много бавно в сравнение със същото от csv файл

Този проблем е разглеждан многократно в StackOverflow:

и във външни източници:

така че само да повторя - по подразбиране DataFrameReader.jdbc не разпространява данни или чете. Използва една нишка, един изпълнител.

За разпространение на четения:

  • използвайте диапазони с 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. как да добавите дата и час с име на архивния файл с помощта на mysqldump от командния ред и да дефинирате пътя на архивния файл

  2. MYSQL Left Присъединете последния ред на резултата

  3. Как да актуализирам таблица от един сървър на друг?

  4. jQuery Plugin за актуализиране на живо на <li> от PHP

  5. Как да съпоставя две стойности от 1 колона в MYSQL