首页 > 解决方案 > Spark结构化流:为什么java代码使用DataSet而scala使用DataFrame类型?

问题描述

嗨,我正在阅读 spark 结构化流的官方文档:https ://spark.apache.org/docs/latest/structured-streaming-programming-guide.html#quick-example

它的 java 示例代码使用 DataFrame 并引入 DataFrame 作为结构化流的基本类型,但同时兄弟 java 代码使用 Dataset 作为数据类型。我只是想知道,只要在jvm上运行spark/scala,scala和java不应该使用相同的数据类型来表示吗?

或者 DataFrame 实际上是一种数据集,不知何故?

希望得到您对这个问题的解释,谢谢。

标签: javascaladataframeapache-sparkdataset

解决方案


A确实是-DataFrame的一个特例,这里定义的主要是泛型类型。作为一个术语和类型早于API,它作为别名的使用或多或少是 Scala Spark 中的一个兼容性特性。此处提供了对差异的完整解释,例如它们。DataSetDataSet[Row]RowDataFrameDataSetDataSet[Row]


推荐阅读