在 CassandraTable 中设置分区数

Posted

技术标签:

【中文标题】在 CassandraTable 中设置分区数【英文标题】:Set number of partitions in CassandraTable 【发布时间】:2015-04-03 09:19:06 【问题描述】:

我将 spark 与 cassandra 一起使用,我正在使用此请求从 cassandra 中选择数据:

val i = sc.cassandraTable[(ClientID, Interaction)](Keyspace, Table).
  select("a", "b", "c", "d").where("a in ?", timesIntervalWindows)

这个请求返回超过 5000000 行,但问题是我的 RDD 只包含一个分区!!!! 所以我试图改变 Spark Context 的这个属性:

conf.set("spark.cassandra.input.split.size", "10000")

但它仍然只创建一个分区。 Ps:我不想使用 Coaless 或 repartition,因为它会打乱网络中的所有数据并且需要很多时间。 谁能告诉我我做错了什么或如何解决这个问题!

谢谢。

【问题讨论】:

你试过在RDD上设置分区器吗?好像有一个CassandraRDDPartitioner 【参考方案1】:

输入拆分大小仅使用给定 Spark 分区中的 Cassandra 分区(而不是行)数的估计值。缩放数字以尝试与 Spark 分区中所需的数字或 C* 分区相对应。

目前的工作也正在让您设置保证的分区数量。

【讨论】:

以上是关于在 CassandraTable 中设置分区数的主要内容,如果未能解决你的问题,请参考以下文章

无法在 pyspark 中设置随机分区的数量

在 Kafka 连接器中设置分区策略

如何在 BQ 命令行中设置 Bigquery 需要分区过滤器

在 ubuntu 的另一个分区中设置文档根目录

如何在 Textarea 中设置最小字符数

如何在 JVM 中设置默认语言环境?