为什么spark对Dataframe使用有序模式?

mec1mxoz  于 2021-05-17  发布在  Spark
关注(0)|答案(1)|浏览(463)

我想知道为什么spark在dataframe中使用有序模式,而不是使用基于名称的模式,其中两个模式被认为是相同的,如果它们对于每个列名具有相同的类型。
我的第一个问题是,在激发列排序的模式中对列排序有什么好处?当我们有这样的假设时,它会使Dataframe上的一些操作更快吗?
我的第二个问题是,我是否可以告诉spark,列的顺序对我来说并不重要,如果无序的列集合和它们的类型是相同的,那么就认为两个模式是相同的。

mzmfm0qo

mzmfm0qo1#

sparkDataframe不是关系数据库。它为某些类型的处理节省了时间;例如。 union ,它实际上将从最后一个df中获取名称。所以,这是一个实现细节。
因此,你不能说秩序与Spark无关。请参见下面的并集:

val df2 = Seq(
  (1, "bat", "done"),
  (2, "mouse", "mone"),
  (3, "horse", "gun"),
  (4, "horse", "some")
).toDF("id", "animal", "talk")

val df = Seq(
  (1, "bat", "done"),
  (2, "mouse", "mone"),
  (3, "horse", "gun"),
  (4, "horse", "some")
).toDF("id", "talk", "animal")

val df3 = df.union(df2)

注意,对于json模式推断,所有内容都是按字母顺序排列的。这对我来说很方便。

相关问题