gpt4 book ai didi

hadoop - 将文本加载到 Orc 文件

转载 作者:可可西里 更新时间:2023-11-01 16:37:32 24 4
gpt4 key购买 nike

如何将文本文件加载到 Hive orc 外部表中?

create table MyDB.TEST (
Col1 String,
Col2 String,
Col3 String,
Col4 String)
STORED AS INPUTFORMAT
'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat'
OUTPUTFORMAT
'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat';

我已经用 Orc 创建了上面的表格。但是从表中获取数据时显示以下错误异常失败

java.io.IOException:org.apache.orc.FileFormatException: Malformed ORC file hdfs://localhost:9000/Ext/sqooporc/part-m-00000. Invalid postscript.

最佳答案

这有多个步骤。遵循细节。

  1. 创建一个能够从纯文本文件中读取的配置单元表。假设您的文件是逗号分隔文件,并且您的文件位于 HDFS 上名为/user/data/file1.txt 的位置,语法如下。

    create table MyDB.TEST (
    Col1 String,
    Col2 String,
    Col3 String,
    Col4 String
    )
    row format delimited
    fields terminated by ','
    location '/user/data/file1.txt';

现在您有了一个与您拥有的数据格式同步的模式。

  1. 使用 ORC 模式创建另一个表

现在您需要像之前创建的那样创建 ORC 表。下面是创建该表的更简单语法。

create table MyDB.TEST_ORC (
Col1 String,
Col2 String,
Col3 String,
Col4 String)
STORED AS ORC;
  1. 您的 TEST_ORC 表现在是一个空表。您可以使用以下命令使用 TEST 表中的数据填充此表。

    INSERT OVERWRITE TABLE TEST_ORC SELECT * FROM TEST;

上述语句将从 TEST 表中选择所有记录,并尝试将这些记录写入 TEST_ORC 表。由于 TEST_ORC 是一张 ORC 表,数据写入表时会即时转换为 ORC 格式。

您甚至可以检查 TEST_ORC 表中 ORC 文件的存储位置。

现在您的数据是 ORC 格式,并且您的表 TEST_ORC 具有解析它所需的架构。如果不需要,您现在可以删除 TEST 表。

希望对您有所帮助!

关于hadoop - 将文本加载到 Orc 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48928397/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com