Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Chuyển đổi bảng mysql thành tập dữ liệu spark rất chậm so với cùng một từ tệp csv

Vấn đề này đã được đề cập nhiều lần trên StackOverflow:

và trong các nguồn bên ngoài:

vì vậy chỉ để nhắc lại - theo mặc định DataFrameReader.jdbc không phân phối dữ liệu hoặc đọc. Nó sử dụng một luồng, một exectuor.

Để phân phối các lần đọc:

  • sử dụng phạm vi với lowerBound / upperBound :

    Thuộc tính
    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

    Thuộc tính
    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. Cần một truy vấn mysql

  2. ER_NOT_SUPPORTED_AUTH_MODE - Máy chủ MySQL

  3. Mệnh đề trong đó phức hợp Mysql

  4. Sự khác biệt đối chiếu utf8 giữa unicode và danish

  5. Tìm địa điểm gần nhất bằng cách sử dụng loại dữ liệu điểm và st_distance_sphere trong MySQL 8