当前位置: 首页 > 知识库问答 >
问题:

通过JDBC从RDBMS读取数据时在spark中进行分区

年良骏
2023-03-14

我在集群模式下运行火花,并通过JDBC从RDBMS读取数据。

根据 Spark 文档,这些分区参数描述了从多个工作线程并行读取时如何对表进行分区:

  • 分区列
  • 下限
  • 上限
  • 分区数

这些是可选参数。

如果我不指定这些,会发生什么情况:

    < li >只有一名工人读取全部数据? < li >如果它仍然并行读取,它如何对数据进行分区?

共有1个答案

轩辕奕
2023-03-14

如果您没有指定{<code>partitionColumn</code>、<code<lowerBound</code>、<code>upperBound>/code、<code>numPartitions</code>}或{<code>谓词

另见:

  • 从 JDBC 源迁移数据时如何优化分区?
  • 如何使用数据帧和 JDBC 连接提高慢速 Spark 作业的性能?
 类似资料:
  • 我试图从mysql读取数据,并将其写回s3中的parquet文件,具体分区如下: 我的问题是,它只打开一个到mysql的连接(而不是4个),并且在从mysql获取所有数据之前,它不会写入parquert,因为mysql中的表很大(100M行),进程在OutOfMemory上失败。 有没有办法将Spark配置为打开多个到mysql的连接并将部分数据写入镶木地板?

  • 我对spark数据帧的分区数量有疑问。 如果我有包含列(姓名、年龄、id、位置)的Hive表(雇员)。 如果雇员表有10个不同的位置。因此,在HDFS中将数据划分为10个分区。 如果我通过读取 Hive 表(员工)的整个数据来创建 Spark 数据帧(df)。 Spark 将为数据帧 (df) 创建多少个分区? df.rdd.partitions.size = ??

  • 我的假设是,首先,spark会从cassandra读取数据,因此在这个阶段,cassandra的大分区不会因为重新分区而分裂。重新分区将对从Cassandra加载的基础数据起作用。 我只是想知道答案,当从spark读取数据时,重新分区是否会改变数据分布,而不是再次进行分区?

  • 我有一个Velleman k8090中继板,我试图从中读取一些数据。我可以很好地写入电路板,但每当我输出读取的数据时,我都会得到奇怪的字符,比如菱形或倒置的问号。以下是我的部分代码: 为什么我会有这些奇怪的角色?文件规定它应该返回年份和星期。 编辑:经过一些搜索和故障排除,我现在非常确定它与Python代码或数据类型有关,而不是与硬件有关。这个论坛包含了一个C语言的例子,它从黑板上读取。我从黑板上

  • 我正在使用Spark 1.6.0。以及用于读取分区拼花数据的DataFrame API。 我想知道将使用多少个分区。 以下是我的一些数据: 2182个文件 Spark似乎使用了2182个分区,因为当我执行计数时,作业被拆分为2182个任务。 这似乎得到了的证实 对吗?在所有情况下? 如果是,数据量是否过高(即我是否应该使用df重新分区来减少数据量)?

  • 我想做的是从我用Arudino制作的转速表电路中读取连续的数据流,然后将其输入处理;我已经使用下面的代码成功完成了: 我不确定如何处理数据,以便每当检测到某个值时,处理中都会发生事件。 编辑:有人建议关闭,所以我的问题是调用是一个阻塞调用,这意味着中的指令指针将保持在。指针将调用和,但永远不会到达启动串行端口的线路 建议的解决方案是将这些行移动到的顶部,并将作为的最后一行。我尝试了这个(我下面的代