hadoop—当我有多个文件(在完全相同的文件夹/目录中)具有完全相同的列时,如何创建一个配置单元表?

lmvvr0a8  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(332)

我在同一个hdfs位置有大约10个文件。所有文件都有完全相同的列(大约15列),每列大约有100行。每个文件表示我在过去10个月内收到的数据(数据每月刷新一次)。我想创建一个配置单元表,将所有数据合并到表中。这个表应该有15列,大约有1000行数据。
我尝试使用通常用于创建表的代码(请参见下文),但当我运行下面的脚本时,它会执行,但只从一个文件中获取数据,而不会从其他9个文件中获取数据。

CREATE EXTERNAL TABLE database.tablename (
UserID INT,
UserName String,
Department String,
State String
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE
LOCATION '/location/of/the/file/'
TBLPROPERTIES ("skip.header.line.count"="1");

我没有收到任何错误,但我只得到部分数据,而不是全部数据。我应该使用完全不同的语法吗?或者我可以编辑上面的脚本来得到我需要的结果吗?
非常感谢您的帮助!p、 我对hadoop/hive非常陌生,所以我正在努力学习这些不同的场景。谢谢大家!

ev7lccsx

ev7lccsx1#

你能确认一下所有的文件都放在 '/location/of/the/file/' 位置。
如果表指向位置中有多个目录 ('/location/of/the/file/') ,然后在当前配置单元会话中设置这些参数并运行查询:

SET hive.mapred.supports.subdirectories=TRUE;
SET mapred.input.dir.recursive=TRUE;

相关问题