【发布时间】:2015-04-21 15:52:47
【问题描述】:
根据新的 Spark Docs,使用 Spark 的DataFrameshould be preferred over using JdbcRDD。
第一次接触非常愉快,直到我遇到第一个问题 - DataFrame 没有 flatMapToPair() 方法。第一个想法是将其转换为JavaRDD,我做到了。
一切都很好,我使用这种方法编写了我的代码,并且注意到这样的代码:
JavaRDD<Row> myRDD = dataFrame.toJavaRDD();
int amount = myRDD.partitions().length
产生1。转换为JavaRDD 下面的所有代码绝对是低效的。对 RDD 进行强制重新分区会花费大量时间,而且开销比代码更大,后者适用于 1 个分区。
如何处理?
在使用JdbcRDD 时,我们使用“寻呼机”(例如用于创建分区的WHERE id >= ? and id <= ?)编写了特定的SQL。如何使用DataFrame 制作这样的东西?
【问题讨论】:
标签: java parallel-processing apache-spark