ApachePig—有没有办法将部分表从hive加载到pig关系?

jvidinwx  于 2021-06-24  发布在  Pig
关注(0)|答案(2)|浏览(422)

我目前正在使用下面的代码加载一个配置单元表到pig关系。 a = LOAD 'hive_db.hive_table' using org.apache.hive.hcatalog.pig.HCatLoader(); 这一步将把hive表中的所有记录都放到pig中,但是对于我当前的场景,我不需要pig中的整个表。当我从hive获取数据时,有没有办法过滤掉不需要的记录?

0s0u357o

0s0u357o1#

否不能加载分部表。但是可以在load语句之后对其进行筛选。可以对特定分区使用筛选,也可以根据加载表中的列值筛选出记录。
这里有一些例子

yqhsw0fo

yqhsw0fo2#

如果您的配置单元表已分区,则可以通过执行 FILTER 在您的 LOAD 声明。
根据文件:
如果只需要指定表的某些分区,请在数据流中紧跟load语句之后包含partition filter语句(但是,在脚本中,filter语句可能不会紧跟在load语句之后。)filter语句可以包括分区列和非分区列的条件。

A = LOAD 'tablename' USING  org.apache.hive.hcatalog.pig.HCatLoader();
-- date is a partition column; age is not
B = filter A by date == '20100819' and age < 30;

上面的命令只会加载分区 date == '20100819' . 这只适用于分区列。

相关问题