Pig:从hive表中获取数据并将分区添加为列

时间:2014-02-12 12:37:59

标签: hadoop hive apache-pig

我有一个分区 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列。为什么会这样?

1 个答案:

答案 0 :(得分:1)

对不起,我没有得到将分区添加为列的部分。创建后,分区键的行为类似于常规列。你究竟需要什么?

您直接从给定的HDFS位置加载数据,而不是Hive表。如果您打算使用Pig从/向Hive表加载/存储数据,您应该使用 HCatalog

例如:

A = LOAD 'transactions' USING org.apache.hcatalog.pig.HCatLoader();
相关问题