【发布时间】:2019-02-15 17:39:05
【问题描述】:
我是 Spark 的新手,正在研究 Dataframes 和 Dataset。我试图了解它们之间的区别,但我很困惑。
启动here,发现RDD的抽象是按如下顺序发生的。
RDD (Spark1.0) —> 数据帧(Spark1.3) —> 数据集(Spark1.6)
Q.1 在链接 here 上,它说 Dataframe 是 Dataset[Row 的别名] 即 Dataset 类型的 Row。如果 Dataframe 是首先完成的 RDD 的抽象,这是否意味着 Dataset 已经存在于 Spark1.3 或当 Spark1.6 被开发出来时,Dataframe 被重新定义为 Dataset[Row]?
Q.2在链接 here 上,它说,
“数据集是特定领域对象的强类型集合,可以使用函数或关系操作并行转换。每个数据集还有一个称为 DataFrame 的无类型视图,它是行的数据集。”
如果,Dataframe 实际上是 Dataset[Row] 为什么 Dataframe 被称为无类型?这里的类型不应该是Row [定义here]吗?
Q.3另外如果Dataframe是Dataset[Row],那为什么要单独定义Dataframe呢?此外,Dataset 的每个操作也应该可以在 Dataframe 上调用。如果以上陈述不正确或有些正确,请随时回答。
如果这些问题过于宽泛,请告诉我。我会根据需要编辑它们。
【问题讨论】:
-
谁投了反对票,你能解释一下这个问题有什么问题吗?
标签: apache-spark apache-spark-sql apache-spark-dataset