我有一个数据文件 .txt
格式。我正在使用该文件将数据加载到配置单元表中。当我将文件加载到一个类似
CREATE TABLE test_details_txt(
visit_id INT,
store_id SMALLINT) STORED AS TEXTFILE;
使用正确加载数据
LOAD DATA LOCAL INPATH '/home/user/test_details.txt' INTO TABLE test_details_txt;
我能跑一辆 SELECT * FROM test_details_txt;
在 hive 的table上。
但是,如果我尝试将数据加载到
CREATE TABLE test_details_txt(
visit_id INT,
store_id SMALLINT) STORED AS ORC;
我在尝试运行select时收到以下错误: Failed with exception java.io.IOException:java.io.IOException: Malformed ORC file hdfs://master:6000/user/hive/warehouse/test.db/transaction_details/test_details.txt. Invalid postscript.
在使用上述load语句加载数据时,我没有收到任何错误或异常。
在使用时还有什么需要做的吗 LOAD DATA IN PATH..
命令将数据存储到orc表中?
5条答案
按热度按时间jhdbpxl91#
步骤:
首先使用存储为文本文件创建一个表 (i、 e默认值或您要创建表的任何格式)
将数据加载到文本表中。
使用存储为orc作为selectfrom text\ U table创建表格;
从orc表格中选择。
例子:
u7up0aaq2#
将数据加载到配置单元中的orc文件格式的步骤
1.使用文本文件格式创建一个普通表
2.将数据正常加载到此表中
3.使用“存储为orcfile”创建一个表,其中包含常规配置单元表的预期结果的架构
4.插入覆盖查询,将数据从textfile表复制到orcfile表
参考博客了解如何将数据加载到hive中的所有文件格式
将数据加载到配置单元中的所有文件格式
yh2wf1be3#
orc文件是二进制文件格式,因此不能直接将文本文件加载到orc表中。orc代表优化的row-columnar,这意味着它可以以比其他文件格式更优化的方式存储数据。orc将原始数据的大小减少了75%。结果,数据处理的速度也提高了。orc显示出比文本、序列和rc文件格式更好的性能。orc文件包含分组中的行数据(称为条带)以及文件页脚。orc格式提高了配置单元处理数据时的性能。
首先需要创建一个普通的textfile表,将数据加载到textfile表中,然后使用insert overwrite查询将数据写入orc文件。
现在你所有的数据都将存储在orc文件中。类似的程序适用于所有二进制文件格式,即序列文件、rc文件和配置单元中的Parquet文件。
有关详细信息,请参阅下面的链接。
https://acadgild.com/blog/file-formats-in-apache-hive/
ltqd579y4#
由于配置单元不对输入数据进行任何转换,因此格式必须相同:要么文件应为orc格式,要么可以将数据从文本文件加载到配置单元中的文本表中。
slhcrj9b5#
LOAD DATA
只需将文件复制到配置单元数据文件。配置单元在将数据加载到表中时不进行任何转换。所以,在本例中,输入文件
/home/user/test_details.txt
如果要将其加载到orc表中,则需要使用orc格式。一种可能的解决方法是使用
STORED AS TEXT
,那么LOAD DATA
然后将此表中的数据复制到orc表中。举个例子: