
之前对RDD的理解是,用户自己选定要使用spark处理的数据,然后这些数据经过transaction后会被赋予d性,分布特性的特点,具备这样特点的数据集,英文缩写就是RDD。但RDD再怎么有特性,还是数据集,在我的理解里就像关系型数据库里的表,里面是存储的数据,抓来就用。
但之后看到dataframe和下面这张图之后,我迷惑了。。
感觉似乎dataframe的结构才更符合我对rdd的理解。。好像transaction在赋予数据集d性,分布特性的同时,还顺带把数据变成对象然后序列化存储了?如果是,那么是按照什么样的标准进行对象化的呢,是按照行,还是按照字段呢,还是按照非关系型数据库里的rowkey呢。。那么这些对象化的数据都是怎么进行后续处理然后参与运算的呢。。
Neo4j就是一个数据库(可以理解成一个类似HBASE的东西,不过Neo4j是几乎是单机数据库,于HBASE不同,HBASE的数据时存储在
HDFS上,由HDFS进行维护,HDFS将数据存储在exfat等单机文件系统上。Neo4j直接将数据格式化到单机文件系统)
每一个服务器保存完整的图数据。
GraphX是一个计算引擎(类似于maprece的东西),它的数据是从SHARK中使用SQL读取数据,或者RDD运算符从文件中读取,然后直接进行计算
另外数据库和计算引擎都可以进行计算任务,不过数据库的接口比较弱,只支持简单的查询
计算引擎提供了强大的计算接口,方便了编程,可以很容易的实现pagerank等图算法
GraphX做数据挖掘应该更方便,有通用的编程几口
Neo4j就需要自己写代码了编程比较麻烦,不过性能上或许有优势
以上就是关于如何理解spark中RDD和DataFrame的结构全部的内容,包括:如何理解spark中RDD和DataFrame的结构、关于图数据库neo4j的关系建立(neo4j知识图谱可视化)、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)