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
来做类似的事情?