我正在从 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);
我不能使用分区列,因为我没有主键列。 任何人都可以建议提高性能。
谢谢
有很多东西可以用来优化你的DF创作。你可能希望删除repartition
,并使用谓词来并行化 Spark 操作的数据检索过程。
如果筛选器不是基于主键或索引列,则可以探索ROWID
。