StackOverflow पर इस समस्या को कई बार कवर किया गया है:
- DataFrame और JDBC कनेक्शन का उपयोग करके धीमी स्पार्क नौकरियों के प्रदर्शन में सुधार कैसे करें?
- spark jdbc df Limit... यह क्या कर रहा है?
- (Py)Spark में डेटा लिखने और पढ़ने के लिए JDBC स्रोत का उपयोग कैसे करें?
और बाहरी स्रोतों में:
तो बस दोहराने के लिए - डिफ़ॉल्ट रूप से 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 )