Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

mysql तालिका को स्पार्क डेटासेट में कनवर्ट करना 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. चेतावनी:mysqli_connect ():(28000/1045):उपयोगकर्ता के लिए प्रवेश निषेध

  2. डिफ़ॉल्ट रूप से MySql में डेटा कैसे ऑर्डर किया जाता है

  3. mysql अद्यतन वृद्धि int फ़ील्ड जो शून्य है

  4. MySQL:एक साधारण टेबल पर समवर्ती अद्यतन (थ्रेड्स के माध्यम से)

  5. PHP/MySQL में सरल पुनरावर्ती पेड़