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

Spark中RDD和Dataframe的区别是什么?[重复]

陆雅志
2023-03-14

嗨,我对apache spark比较陌生。我想了解RDD、dataframe和数据集之间的区别。

例如,我从s3存储桶中提取数据。

df=spark.read.parquet("s3://output/unattributedunattributed*")

在这种情况下,当我从s3加载数据时,什么是RDD?另外,由于RDD是不可变的,所以我可以更改df的值,使df不能是RDD。

如果有人能解释RDD、数据帧和数据集之间的区别,我将不胜感激。

共有1个答案

莘钧
2023-03-14
df=spark.read.parquet("s3://output/unattributedunattributed*")

使用此语句,您将创建一个数据帧。

要创建RDD,请使用

df=spark.textFile("s3://output/unattributedunattributed*")

RDD代表弹性分布式数据集。它是记录的只读分区集合。RDD是Spark的基本数据结构。它允许程序员在内存中进行计算

在Dataframe中,组织成命名列的数据。例如关系数据库中的表。它是一个不可变的分布式数据集合。Spark中的DataFrame允许开发人员将结构强加到分布式数据集合上,从而允许更高级别的抽象

  1. 如果要对整个数据集应用映射或过滤器,请使用RDD

例如,如果您想用“B”替换整个数据中的“A”,那么RDD很有用。

rdd = rdd.map(lambda x: x.replace('A','B')

如果要更新列的数据类型,请使用Dataframe。

dff = dff.withColumn("LastmodifiedTime_timestamp", col('LastmodifiedTime_time').cast('timestamp')

RDD可以转换为数据帧,反之亦然。

 类似资料:
  • 我浏览了一下Spark中RDD和Dataframe的链接有什么区别? > 我们可以在spark上运行Pandas、numpy数据帧功能吗。对于numpy,np。像df这样的熊猫在哪里和在哪里。分组依据[“”]。agg()

  • 在Apache Spark中,这些API之间有什么区别?为什么以及什么时候我们应该选择其中一个?

  • 我仍在努力理解最近推出的Spark数据集的全部功能。 是否有关于何时使用RDD和何时使用数据集的最佳实践? Databricks在他们的公告中解释说,通过使用数据集,可以实现运行时和内存的惊人减少。尽管如此,据称数据集的设计“与现有RDD API协同工作”。 这仅仅是对向下兼容性的引用,还是有人更愿意在数据集上使用RDD的场景?

  • 我在读spark教科书,我看到了转换和动作,我又读了rdd函数,所以我很困惑,谁能解释一下转换和spark rdd函数之间的基本区别呢。 两者都用于更改rdd数据内容并返回一个新的rdd,但我想知道确切的解释。

  • 定义如下: RDD是不可变的分布式对象集合 我不太明白这是什么意思。它像存储在硬盘上的数据(分区对象)吗?如果是这样,那么RDD为什么可以有用户定义的类(如java、scala或python) 通过此链接:https://www.safaribooksonline.com/library/view/learning-spark/9781449359034/ch03.html它提到: 用户通过两种方

  • 我试着用谷歌搜索,但找不到答案。 取自ApacheSpark:map vs mapPartitions? RDD的map和mapPartitions有什么区别 map在每个元素级别运行正在使用的函数,而mapPartitions在分区级别运行该函数。 在这种情况下,什么是元素级别?这只是一行吗?