【问题标题】:How to alter ORC file's embedded schema?如何更改 ORC 文件的嵌入式架构?
【发布时间】:2021-09-21 15:00:18
【问题描述】:

​有没有一种轻量级的解决方案,可以改变ORC文件中特定列的数据类型,而无需转换整列数据类型和重写整个orc文件?

以下是一个重量级的解决方案:

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

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

谢谢!

【问题讨论】:

    标签: apache-spark hadoop hdfs orc


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢本。即使将 TIMESTAMP 列更改为 DATE,这也不可能吗?
    • 任何类型更改都需要对文件进行全面重新处理,是的。
    • 谢谢本!另外,我向 Cloudera Support 询问了同样的问题。得到了同样的答案。
    猜你喜欢
    • 2017-04-26
    • 2021-08-02
    • 2019-06-24
    • 1970-01-01
    • 2018-10-07
    • 2022-12-14
    • 1970-01-01
    • 1970-01-01
    • 2018-12-22
    相关资源
    最近更新 更多