首页 > 解决方案 > 通过avro格式将JSON文件转换为Parquet格式

问题描述

我有大量 JSON 文件,所有 JSON 文件都包含约 200 个属性的子集,其中大部分是复杂属性(该属性具有多个嵌套属性)。并非所有属性都必须存在于所有 JSON 文件中。

我想将这些 JSON 转换为 Parquet 格式的文件,寻找一种方法来执行此操作,我发现我需要将 JSON 转换为 avro 格式,然后将 avro 格式的数据转换为 Parquet 格式。

我的问题是我找不到提取 avro 模式的方法,尝试使用JsonUtil.inferSchema将不起作用,因为并非所有属性都存在于每个 json 文件中。我在库中的 POJO java 类中存在属性,但是使用 avro 反射来获取模式不起作用,因为 pojo 中有泛型,这在 avro 中仍然不受支持。我最后的手段是手动编写模式,但这将非常耗时。

有没有其他方法可以获取 avro 架构?这是我过去两天一直在寻找解决方案的问题,让我感到沮丧。

标签: javajsonbigdataavroparquet

解决方案


推荐阅读