2
根據新的Spark Docs,使用Spark的DataFrame
should be preferred over using JdbcRDD
。Apache Spark DataFrame無RDD分區
直到遇到第一個問題時,第一次觸摸非常愉快 - DataFrame
沒有flatMapToPair()
方法。第一個想法是把它轉換成JavaRDD
,我做到了。
一切都很好,我用這種方式寫我的代碼,並且發現這樣的代碼:
JavaRDD<Row> myRDD = dataFrame.toJavaRDD();
int amount = myRDD.partitions().length
產生1
。所有代碼如下轉換爲JavaRDD
是絕對低效的。 RDD的重新分區需要很長的時間,並且比代碼更大的開銷,這與1分區一起工作。
如何處理?
在使用JdbcRDD
時,我們使用「pager」編寫了特定的SQL,如用於創建分區的WHERE id >= ? and id <= ?
。如何使用DataFrame
來做類似的事情?