我有一个分区 Hive 表,我希望在 Pig 脚本中加载,并希望将分区添加为列。
我该怎么做?
Hive中的表定义:
CREATE EXTERNAL TABLE IF NOT EXISTS transactions
(
column1 string,
column2 string
)
PARTITIONED BY (datestamp string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
LOCATION '/path';
猪脚本:
%default INPUT_PATH '/path'
A = LOAD '$INPUT_PATH'
USING PigStorage('|')
AS (
column1:chararray,
column2:chararray,
datestamp:chararray
);
未填充datestamp
列。为什么会这样?
答案 0 :(得分:1)
对不起,我没有得到将分区添加为列的部分。创建后,分区键的行为类似于常规列。你究竟需要什么?
您直接从给定的HDFS位置加载数据,而不是Hive表。如果您打算使用Pig从/向Hive表加载/存储数据,您应该使用 HCatalog 。
例如:
A = LOAD 'transactions' USING org.apache.hcatalog.pig.HCatLoader();