连接到 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 中进行分区的主要内容,如果未能解决你的问题,请参考以下文章

尝试从 Spark 连接到 Oracle

连接到互联网时在主屏幕上显示进度轮 [Android]

连接到雪花连接器时在笔记本中运行报告的最佳方法是什么?

dplyr:连接到外部数据库时在 summarise() 中使用自定义函数

solr连接到Mongo时在控制台中出现以下错误。 solr日志中没有错误

如何在设置 jenkins 触发器时在 github webhook 中修复“我们无法传递此有效负载:无法连接到服务器”?