0

我正在实现一个验证数据集模式的功能。我知道在 ADF 中的 Mapping Dataflow 部分中有一个复选框,如果列或列的类型与引用不匹配,它会自动执行此操作。对于 CSV,它对我来说很好,但对于 JSON,我注意到两件事:1,当我为 JSON 创建一个数据集时,它的模式与我在映射数据流中看到的不同,尽管我使用相同的数据集。我在两个(数据集和数据流)位置都尝试了从示例文件导入、导入投影等的每个选项。没有成功

sameDataSetDifferentSchema.png

在数据集的最后,我通过编辑 JSON 的 JSON 在代码部分手动更改了它:)

changeSchemaOfDataset.png

2,最后它在拥有相同的模式后并没有解决问题,它在模式验证期间仍然失败。

错误信息.png

但是,在错误消息本身中,如果您看到屏幕截图,它会显示相同的类型:

已找到:ArrayType(StructType(StructField(**Description1**,StringType,true),...etc 必填:ArrayType(StructType(StructField(**Description1**,StringType,true),...etc

4

1 回答 1

0

无需更改数据集 JSON 中的数据类型,只需在数据流中覆盖它即可。

在源转换的投影选项卡中,单击“导入投影”以覆盖数据集架构。

如果您没有获得所需的架构,请使用带有 toInteger() 的派生列来修改它,以获得您想要转换的字符串。

于 2020-10-19T16:51:40.993 回答