gpt4 book ai didi

java - 什么是 SparkSession.read() Dataset 限制 Cassandra 表中的读取? ( Spark 性能)

转载 作者:行者123 更新时间:2023-12-02 12:20:29 25 4
gpt4 key购买 nike

我正在使用org.apache.spark.sql.SparkSession阅读Cassandra表至 Spark Dataset<Row> 。数据集包含整个表信息,如果我将新行添加到 Cassandra它似乎在后台异步工作,并用行更新数据集,而无需再次读取表格。

  1. 是否有任何方法可以限制从表中读取的数据,或者是否存在内置限制?

  2. Dataset<Row> 的大小是多少?那Spark开始发现难以处理?

  3. Spark有什么要求处理计算 if Cassandra表有半 TB?

  4. 如果 Spark想要将一个大的新信息表写入 Cassandra ,这是否会给 Spark 带来更多问题?写在 CassandraCassandra阅读它?我只是想知道哪种产品会首先导致数据丢失或崩溃。

如果有人能告诉我怎么做SparkSession .read()完全在后台运行或 Dataset<Row>他们需要什么才能表现出色,这将非常有用。谢谢。

最佳答案

SparkSession.read() 调用底层数据源的扫描方法。对于 Cassandra 来说,这是 Spark Cassandra 连接器。

Spark Cassandra 连接器将 C* token 环分解为 block ,每个 block 或多或少成为一个 Spark 分区。然后在每个执行器核心中读取单个 Spark 分区。

解释这一点的视频 at Datastax Academy

行的实际大小与稳定性无关,数据按标记范围分解,因此如果底层 Cassandra 数据具有非常大的热点,您只会遇到困难。这将导致 Spark 分区非常大,进而导致内存问题。一般来说,分布式良好的 C* 数据库无论大小都应该没有问题。

关于java - 什么是 SparkSession.read() Dataset<Row> 限制 Cassandra 表中的读取? ( Spark 性能),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45813981/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com