Spark JDBC读取调整没有主键的表

时间:2018-09-21 14:20:19

标签: apache-spark-sql spark-jdbc

我正在从oracle表中读取30M条记录,没有主键列。 spark jdbc读取挂起,并且未获取任何数据。在同一秒内,我可以在几秒钟内从Oracle SQLDeveloper获得结果。

oracleDf = hiveContext.read().format("jdbc").option("url", url)
                        .option("dbtable", queryToExecute)
                        .option("numPartitions ","5")
                        .option("fetchSize","1000000")
                        .option("user", use).option("password", pwd).option("driver", driver).load().repartition(5);

我无法使用分区列,因为我没有主键列。 任何人都可以提出建议以提高性能。

谢谢

1 个答案:

答案 0 :(得分:1)

可以使用许多方法来优化DF的创建。您可能要删除repartition,并使用predicates来并行化Spark动作的数据检索过程。

如果过滤器不是基于主键或索引列,则有可能浏览ROWID