如何更改 ORC 文件的嵌入式架构?

How to alter ORC file's embedded schema?

是否有一种轻量级的解决方案来更改ORC文件中特定列的数据类型,而无需转换整个列的数据类型并重写整个orc文件?

以下为重量级方案:

  1. 在 Spark 中读取 orc 文件
  2. 转换特定列的数据类型
  3. 将转换后的orc文件写入HDFS

正在寻找一种我可以更改嵌入式元数据信息的轻量级解决方案。

谢谢!

这不是您正在寻找的答案,但不,您不能在不重新生成文件的情况下更改 ORC 中的列类型。你所建议的是正确的方法。

ORC 在文件头中包含索引和聚合值,因此更改字符串 -> double 将需要扫描整个列,以便可以为现在的数字计算 min/max/average 等列。