连接到 RDBMS 时在 Spark 中进行分区
Posted
技术标签:
【中文标题】连接到 RDBMS 时在 Spark 中进行分区【英文标题】:Partitioning in Spark while connecting to RDBMS 【发布时间】:2017-08-10 20:11:25 【问题描述】:假设我有一个包含 10,000 条记录的 RDBMS 表,其中有一列 (pk_key) 是从 1 到 10,000 的序列值。我打算通过 spark 阅读它。 我打算分成10个分区。
所以在 DataFrameReader jdbc 方法中,我的 columnName 将是“pk_key”,numPartitions 将是 10。 这些的 lowerBound 和 upperBound 应该是什么?
PS:我的实际记录数要高得多,我只需要了解它是如何工作的?
【问题讨论】:
【参考方案1】:你有任何自然键吗?它可能不是唯一的。 lowerBound 和 upperBound 为 Long 值很难确定,不同的日子会有所不同。
您可以做的一件事是运行两个查询:
select min(pk_key) from table;
select max(pk_key) from table;
通过正常的 JDBC 连接。第一个查询将返回 lowerBound,第二个 - upperBound
【讨论】:
以上是关于连接到 RDBMS 时在 Spark 中进行分区的主要内容,如果未能解决你的问题,请参考以下文章
dplyr:连接到外部数据库时在 summarise() 中使用自定义函数
solr连接到Mongo时在控制台中出现以下错误。 solr日志中没有错误
如何在设置 jenkins 触发器时在 github webhook 中修复“我们无法传递此有效负载:无法连接到服务器”?