无法将.csv数据从 hdfs 加载到 Hadoop 中的 Hive 表中



我正在尝试将csv文件加载到Hive表中。 我需要通过HDFS来完成它。

我的最终目标是将配置单元表也连接到 Impala 表,然后我可以将其加载到 Power BI 中,但我在填充 Hive 表时遇到问题。

我使用以下代码在 Hive 查询编辑器中创建一个表:

CREATE TABLE IF NOT EXISTS dbname.table_name (
time_stamp TIMESTAMP COMMENT 'time_stamp',
attribute STRING COMMENT 'attribute',
value DOUBLE COMMENT 'value',
vehicle STRING COMMENT 'vehicle',
filename STRING COMMENT 'filename')

然后我使用以下代码检查并查看位置:

SHOW CREATE TABLE dbname.table_name;

并发现它已转到默认位置: hdfs://our_company/user/hive/warehouse/dbname.db/table_name

所以我在 HDFS 中转到上面的位置,我手动上传了一些 csv 文件,这些文件与我创建的表采用相同的五列格式。 以下是我希望将此数据加载到 Hive 表中的位置,但是当我返回到 Hive 中的 dbname 并打开我创建的表时,所有值仍然是 null,当我尝试在浏览器中打开时,我得到:

数据库错误 分析异常: 无法解析路径:"dbname.table_name">

然后我尝试以下代码:

LOAD DATA INPATH 'hdfs://our_company/user/hive/warehouse/dbname.db/table_name' INTO TABLE dbname.table_name;

它运行良好,但 Hive 中的表仍然没有填充。

我还尝试了上述所有方法,改用创建外部表,并在 LOCATION 参数中指定 HDFS。 我还尝试先创建一个HDFS位置,上传csv文件,然后创建外部表,并将LOCATION参数指向预制的HDFS位置。

我已经确保我有授权权限。

无论我尝试哪种方法,我的表都不会填充 csv 文件。

我在这里做错了什么?

我能够使用以下方法解决问题:

CREATE TABLE IF NOT EXISTS dbname.table_name (
time_stamp STRING COMMENT 'time_stamp', 
attribute STRING COMMENT 'attribute', 
value STRING COMMENT 'value', 
vehicle STRING COMMENT 'vehicle', 
filename STRING COMMENT 'filename') 
ROW FORMAT DELIMITED 
FIELDS TERMINATED BY ',' 
STORED AS TEXTFILE

LOAD DATA INPATH 'hdfs://our_company/user/hive/warehouse/dbname.db/table_name' OVERWRITE INTO TABLE dbname.table_name;