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

Unable to load .csv data from hdfs into Hive table in Hadoop

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

我的最终目标是让配置单元 table 也连接到 Impala tables,然后我可以将其加载到 Power BI 中,但我无法获取配置单元table 秒填充。

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

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文件,这些文件与我创建的table具有相同的五列格式。这是我希望将此数据加载到 Hive table 的位置,但是当我返回 Hive 中的 dbname 并打开我创建的 table 时,所有值仍然为空,并且当我尝试在浏览器中打开我得到:

数据库错误 AnalysisException:无法解析路径:'dbname.table_name'

然后我尝试下面的代码:

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

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

我还尝试使用 CREATE EXTERNAL TABLE 代替上述所有方法,并在 LOCATION 参数中指定 HDFS。我还尝试先制作一个 HDFS 位置,上传 csv 文件,然后使用指向预制 HDFS 位置的 LOCATION 参数创建外部 TABLE。

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

无论我尝试哪种方法,我的 table 都不会填充 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;