读取Thrift架构已更改的Parquet文件

时间:2015-12-01 16:46:27

标签: thrift parquet

我想创建Parquet文件,其记录是Thrift结构,所有字段都是optional

假设我创建了一个文件my_file.parquet,其字段为struct Bar { ... }。现在,假设我通过删除一个字段并添加另一个字段来更改Bar。当我尝试使用更新的my_file.parquet架构阅读Bar时会发生什么?

我假设Parquet在阅读时会跳过从Bar删除的字段? 如果我尝试阅读已添加的字段,我会获得null吗?

任何帮助将不胜感激。我在文档中找不到这个。谢谢

1 个答案:

答案 0 :(得分:0)

以下是Thrift所做的,所以它不是Parquet特有的。

  1. 如果它是可选的(或“默认”),则删除该字段不应该带来任何问题。在反序列化数据时,将跳过并忽略内容。

  2. 与添加新的可选字段相同。它是可选的,它不在旧数据中,因此根据期望我们在反序列化后得到一个未设置的字段。

  3. 最佳做法是说,您不应该删除该字段,而是评论。这可以防止您和其他人稍后意外重用过时的字段ID。这是一件坏事。

  4. 我们在做的时候:在做任何事情之前要三思而后required。因为required是永远的。

  5. 强烈推荐的讲座,对该主题有一些更深入的解释:Diwaker Gupta's great "Missing Guide"