加载具有不同列顺序的 Parquet 文件

kel*_*ket 5 apache-spark parquet

我有两个 Parquet 目录正在加载到 Spark 中。它们具有相同的列,但列的顺序不同。

val df = spark.read.parquet("url1").printSchema()
root
 |-- a: string (nullable = true)
 |-- b: string (nullable = true)

val df = spark.read.parquet("url2").printSchema()
root
 |-- b: string (nullable = true)
 |-- a: string (nullable = true)

val urls = Array("url1", "url2")
val df = spark.read.parquet(urls: _*).printSchema()
root
 |-- a: string (nullable = true)
 |-- b: string (nullable = true)
Run Code Online (Sandbox Code Playgroud)

当我将文件加载在一起时,它们似乎总是采用 url1 的顺序。我担心以不同的顺序保存 url1 和 url2 中的镶木地板文件会产生意想不到的后果,例如 a 和 b 交换值。有人可以解释镶木地板如何加载以不同顺序存储的列,并提供官方文档的链接(如果可能的话)?