我有一个带有管道作为分隔符的文本文件。我想将数据加载到RC格式的hive分区表中。我可以分两步完成。即首先加载到文本格式的外部表中,然后从那里我可以加载到RC格式的分区表中。
但问题是可以使用load hadoop命令在一步过程中完成(考虑到运行时我不确定不同的分区值)。
我在load data inpath 'hdfs_file_or_directory_path' OVERWRITE INTO TABLE table1 PARTITION (YEAR_DT)
下方尝试过,但收到错误。
RC格式的表结构如下:
CREATE EXTERNAL TABLE TEST.TABLE1(
Col1 DATE,
Col2 INT,
Col3 DOUBLE,
Col4 VARCHAR(2),
Col5 VARCHAR(3),
Col6 SMALLINT,
Col7 TIMESTAMP
)
partitioned by (YEAR_DT INT)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '|'
STORED AS RCFILE
LOCATION
'hdfs_file_or_directory_path'
TBLPROPERTIES ('transactional'='true');

我得到的错误如下:
hive> load data inpath '<hdfs path>' OVERWRITE INTO TABLE TABLE1 PARTITION(year_dt);
FAILED: SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: MetaException(message:Invalid partition key & values; keys [year_dt, ], values [])
hive> load data inpath '<hdfs path>' OVERWRITE INTO TABLE TABLE1 PARTITION(year_dt = 2014);
Loading data to table test.test1 partition (year_dt=2014)
Failed with exception Wrong file format. Please check the file's format.
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.MoveTask
&#13;