Apache spark 在同一拼花地板文件中,每行组可以有不同的模式吗?
在创建拼花地板文件时,每个行组可以有不同的模式吗?在这种情况下,页脚将具有跨所有行组的所有架构的并集,但每个行组的架构将不同。这是公认的拼花地板格式吗?拼花地板规范是否明确指出模式不能更改同一拼花地板文件中的每行组 官方规范对这一部分不是很具体,但是当我们以这种方式编写文件时,Spark无法读取 我尝试编写这样一个文件并使用spark.read.parquet进行读取,结果出现以下错误Apache spark 在同一拼花地板文件中,每行组可以有不同的模式吗?,apache-spark,parquet,databricks,azure-databricks,Apache Spark,Parquet,Databricks,Azure Databricks,在创建拼花地板文件时,每个行组可以有不同的模式吗?在这种情况下,页脚将具有跨所有行组的所有架构的并集,但每个行组的架构将不同。这是公认的拼花地板格式吗?拼花地板规范是否明确指出模式不能更改同一拼花地板文件中的每行组 官方规范对这一部分不是很具体,但是当我们以这种方式编写文件时,Spark无法读取 我尝试编写这样一个文件并使用spark.read.parquet进行读取,结果出现以下错误 // this line works fine and it shows the schema from th
// this line works fine and it shows the schema from the footer where we have a unioned schema of all the rowgroups.
var df = spark.read.option("mergeSchema", "true").parquet("abc.parquet")
// but when I try to do df.show() it throws an error
df.show()
org.apache.spark.SparkException:作业因阶段失败而中止:阶段10.0中的任务0失败4次,最近的失败:阶段10.0中的任务0.3丢失(TID 86,10.139.64.6,executor 0):java.lang.IllegalArgumentException:[可见性\值\字符串]可选二进制可见性\值\字符串(UTF8)不在存储中:
规范只说列的顺序应该与FileMetadata中的顺序相同,我将其解释为,在随后的行组中可以有更多的列
该规范只说明每个行组中的模式必须包含与FileMetadata相同顺序的列,但并没有真正说明它应该包含所有列。在这种情况下,我们可以在后续的行组中有更多的列吗
row group 1 -> col1, col2
row group 2 -> col1, col2, col3
row group 3 -> col1, col2, col3, col4
file metadata -> col1, col2, col3, col4
这是一种可接受的拼花地板格式吗?如果不是,原因是什么?单个文件需要内部一致,但当您有多个文件时,您可以有“兼容”但不同的模式。单个文件需要内部一致,但您可以有“兼容”但是当您有多个文件时,模式会不同。您能解释一下内部一致性是什么意思吗?规范只说列的顺序应该与FileMetadata中的顺序相同,我将其解释为,我可以在随后的行组中有更多的列,对吗?请解释一下内部一致性是什么意思?规范只说列的顺序应该与FileMetadata中的顺序相同,我将其解释为,在后续行组中可以有更多列,对吗?