【发布时间】:2021-07-10 16:15:21
【问题描述】:
我正在研究 pyspark (3.x) 和 delta Lake。我在数据类型方面面临一些挑战。 我们以 JSON 数据类型接收数据,我们正在对 JSON 数据集进行一些扁平化并将其保存为增量表,其中选项为“mergeSchema”,如下所示。我们不会在表格上强加任何架构。
df.write\
.format("delta")\
.partitionBy("country","city")\
.option("mergeSchema","true")\
.mode("append")\
.save(delta_path)\
我们面临的问题是 - JSON 字段的数据类型经常变化,例如在增量表中,“field_1”的数据类型为 StringType,但新 JSON 的“field_1”数据类型为 LongType .因此,我们遇到了合并不兼容的异常。
ERROR : Failed to merge fields 'field_1' and 'field_1'. Failed to merge incompatible data types StringType and LongType
如何处理增量表中的这种数据类型演变,我不想在字段级别处理数据类型更改,因为我们有 300 多个字段作为 json 的一部分。
【问题讨论】:
标签: json pyspark jsonschema delta-lake