火花 jdbc 读取调整 where 没有主键的表
Posted
技术标签:
【中文标题】火花 jdbc 读取调整 where 没有主键的表【英文标题】:spark jdbc read tuning where table without primary key 【发布时间】:2018-09-21 14:20:19 【问题描述】:我正在从没有主键列的 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】:有很多东西可以用来优化您的 DF 创建。您可能希望删除 repartition
并使用 predicates 来并行处理 Spark 操作的数据检索过程。
如果过滤器不是基于主键或索引列,则可以探索ROWID
。
【讨论】:
以上是关于火花 jdbc 读取调整 where 没有主键的表的主要内容,如果未能解决你的问题,请参考以下文章