首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >星星之火和无尾熊之间有什么区别?

星星之火和无尾熊之间有什么区别?
EN

Stack Overflow用户
提问于 2021-10-05 19:21:50
回答 2查看 712关注 0票数 0

我试图了解考拉的内部运作。我使用过的每一个教程都向我展示了三个概念。

dataframe

  • Internal
  1. dataframe

根据我的理解,火花数据是典型的分布式火花数据。现在,这个火花数据框架需要作为熊猫数据呈现,以使概念更加清晰--这就是内部框架的概念。内部框架保存星火列名->熊猫列名和索引信息等映射。

让这个图像帮助我们理解:

这样看来,考拉数据帧只是一个逻辑概念,人们可以将它理解为火花数据帧的解析输出,内部框架提供解析器。它是火花数据的抽象层,有助于使星火数据能够适应考拉API (熊猫风格)。

每个对考拉数据帧的API调用都会创建一个新的内部框架,并且创建或不创建一个新的火花数据框架。

但是,我也看到了这样的图像:

这就是我困惑的地方。创建或不创建一个新的考拉树袋熊意味着什么?考拉到底是什么?以第一个图像的具体例子为例,在应用像kdf.dropna(...,inplace=True)这样的操作时,保持考拉的数据不变,同时改变内部帧和火花数据是什么意思?

EN

回答 2

Stack Overflow用户

发布于 2021-10-08 06:09:37

考拉的目标之一是在星火之上提供潘达斯API。

现在,有一些潜在的差异,b/w火花DF & Pandas DF,为了消除这些差异,考拉使用InternalFrame。例如,Pandas通过索引维护行顺序,而Spark不维护订单。

因此,InternalFrame可以被看作是b/w火花和Pandas的桥梁(如果你从用户的角度看它的话)。

正如您正确地提到的: InternalFrame => Spark +不可变元数据。

在遮罩下,考拉根据用户通过考拉API执行的操作来维护InternalFrames系列。

现在,对于每个操作,没有必要更改基础Spark,例如将一个新列设置为索引,这样的操作只需要更新元数据。因此,考拉将只使用更新的元数据创建一个新的InternalFrame状态。

类似地,如果您在考拉DF上执行一个浮点,那么在引擎盖下它的工作方式如下:

当前状态=>考拉DF -> InternalFrame (当前Spark +元数据)

新状态的=>相同的考拉DF现在指向->新的InternalFrame (更新后的Spark后的DF +元数据)

总之,我们可以说考拉API使用了InternalFrame的概念,在星火之上提供了类似熊猫的API。因此,只要进行最少的代码更改,用户就可以从单个节点切换到集群。

票数 1
EN

Stack Overflow用户

发布于 2021-10-06 07:57:17

让事情变得太复杂了。

--考拉项目--通过在Apache上实现熊猫DataFrame API,使数据科学家在与大数据交互时更有效率。熊猫是Python中事实上的标准(单节点) DataFrame实现,而Spark是大数据处理的事实上的标准。有了这个包,您可以:

如果你对熊猫已经很熟悉的话,就应该立即对火种进行有效的处理,不要有学习曲线。有一个单独的代码库,既适用于熊猫(测试,较小的数据集)和星火(分布式数据集)。

只是一个API之上的星火数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69456165

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档