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

RDD火花质疑

缑赤岩
2023-03-14

我想了解以下关于火花概念的RDD的事情。

>

  • RDD仅仅是从HDFS存储中复制某个节点RAM中的所需数据以加快执行的概念吗?

    如果一个文件在集群中被拆分,那么对于单个flie来说,RDD从其他节点带来所有所需的数据?

    如果第二点是正确的,那么它如何决定它必须执行哪个节点的JVM?数据局部性在这里是如何工作的?

  • 共有1个答案

    徐星阑
    2023-03-14

    RDD是Apache Spark的核心,是分布式对象集合的数据抽象。它们是不可变的、分布式的数据元素集合,可以跨计算机集群存储在内存或磁盘中。数据在集群中跨机器进行分区,这些机器可以通过提供转换和操作的低级API并行操作。RDDs是容错的,因为它们跟踪数据沿袭信息,以在故障时自动重建丢失的数据。参考:https://databricks.com/blog/2016/06/22/apache-spark-key-terms-explained.html

    如果文件在加载时在集群中被拆分,则在RDDs驻留的节点上进行计算。也就是说,计算在数据所在的地方执行(以及尽可能地执行),以最大限度地减少执行洗牌的需要。有关Spark和数据本地性的更多信息,请参见:https://databricks.gitbooks.io/databricks-spark-knowledge-base/content/performance_optimization/data_locality.html。

    注意,关于Spark Research的更多信息,请参阅:http://Spark.apache.org/Research.html;更具体地说,请参阅Zaharia et。Al.的论文:弹性分布式数据集:内存集群计算的容错抽象(http://people.csail.mit.edu/matei/papers/2012/nsdi_spark.pdf)。

     类似资料:
    • 我正在使用火花流,我从Kafka读取流。阅读此流后,我将其添加到hazelcast地图中。 问题是,我需要在读取Kafka的流之后立即从地图中过滤值。 我正在使用下面的代码来并行化地图值。 但在这个逻辑中,我在另一个逻辑中使用JavaRDD,即JavaInputDStream.foreachRDD,这会导致序列化问题。 第一个问题是,如何通过事件驱动来运行spark作业? 另一方面,我只是想得到一

    • 问题内容: 在我的猪代码中,我这样做: 我想用spark做同样的事情。但是,不幸的是,我看到我必须成对进行: 是否有联合运算符可以让我一次对多个rdds进行操作: 例如 这是一个方便的问题。 问题答案: 如果这些是RDD,则可以使用方法: 没有等效项,但这只是一个简单的问题: 如果要在RDD上大量使用和重新创建,可能是避免与准备执行计划的成本相关的问题的更好选择:

    • CreateDataFrame接受2个参数,一个rdd和模式。 我的图式是这样的 <代码>val schemas=结构类型(Seq(StructField(“number”,IntegerType,false),StructField(“notation”,StringType,false))) 在一种情况下,我能够从RDD创建数据帧,如下所示: 在以下其他情况下。。我不能 data2不能成为Da

    • 我通过指定分区的数量从文本文件创建RDD(Spark 1.6)。但它给我的分区数与指定的分区数不同。 案例1 案例2 案例3 案例4 文件/home/pvikash/data/test的内容。txt是: 这是一个测试文件。将用于rdd分区 基于以上案例,我有几个问题。 对于案例2,显式指定的分区数为0,但实际分区数为1(即使默认最小分区为2),为什么实际分区数为1? 对于案例3,为什么在指定数量的

    • 我有RDD,其中每个记录都是int: 我所需要做的就是将这个RDD拆分成批。即。制作另一个RDD,其中每个元素都是固定大小的元素列表: 这听起来微不足道,然而,最近几天我很困惑,除了下面的解决方案之外,什么也找不到: > 使用ZipWithIndex枚举RDD中的记录: 这将得到我所需要的,然而,我不想在这里使用组。当您使用普通映射Reduce或一些抽象(如Apache Crunch)时,它是微不

    • 请注意,我比程序员更擅长数据挖掘。我试图运行作者Sandy Ryza的书《Spark的高级分析》中的示例(这些代码示例可以从https://github.com/sryza/aas下载),我遇到了以下问题。当我打开这个项目在Intelij的想法,并试图运行它,我得到错误"异常线程"主"java.lang.NoClassDefFoundError: org/apache/火花/rdd/RDD"有人知