gpt4 book ai didi

java - Apache Spark DataFrame 没有 RDD 分区

转载 作者:行者123 更新时间:2023-11-30 11:05:04 24 4
gpt4 key购买 nike

根据新的 Spark 文档,使用 Spark 的 DataFrame should be preferred over using JdbcRDD .

第一次接触非常愉快,直到我遇到第一个问题 - DataFrame没有flatMapToPair()方法。第一个想法是将其转换为 JavaRDD我做到了。

一切都很好,我使用这种方法编写了我的代码,并注意到这样的代码:

JavaRDD<Row> myRDD = dataFrame.toJavaRDD();
int amount = myRDD.partitions().length

产生1 .以下所有代码都转换为 JavaRDD绝对是低效的。对 RDD 进行强制重新分区会花费大量时间,并且比使用 1 个分区的代码产生更大的开销。

如何处理?

在使用 JdbcRDD 时我们用“寻呼机”编写了特定的 SQL,例如 WHERE id >= ? and id <= ?用于创建分区。如何使用 DataFrame 制作这样的东西?

最佳答案

`

 val connectionString` = "jdbc:oracle:thin:username/password@111.11.1.11:1521:ORDERS"                                          
val ordersDF = sqlContext.load("jdbc",
Map( "url" -> connectionString,
"dbtable" -> "(select * from CUSTOMER_ORDERS)",
"partitionColumn" -> "ORDER_ID",
"lowerBound"-> "1000",
"upperBound" -> "40000",
"numPartitions"-> "10"))

关于java - Apache Spark DataFrame 没有 RDD 分区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29777224/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com