我目前正在使用下面的代码加载一个配置单元表到pig关系。 a = LOAD 'hive_db.hive_table' using org.apache.hive.hcatalog.pig.HCatLoader();
这一步将把hive表中的所有记录都放到pig中,但是对于我当前的场景,我不需要pig中的整个表。当我从hive获取数据时,有没有办法过滤掉不需要的记录?
我目前正在使用下面的代码加载一个配置单元表到pig关系。 a = LOAD 'hive_db.hive_table' using org.apache.hive.hcatalog.pig.HCatLoader();
这一步将把hive表中的所有记录都放到pig中,但是对于我当前的场景,我不需要pig中的整个表。当我从hive获取数据时,有没有办法过滤掉不需要的记录?
2条答案
按热度按时间0s0u357o1#
否不能加载分部表。但是可以在load语句之后对其进行筛选。可以对特定分区使用筛选,也可以根据加载表中的列值筛选出记录。
这里有一些例子
yqhsw0fo2#
如果您的配置单元表已分区,则可以通过执行
FILTER
在您的LOAD
声明。根据文件:
如果只需要指定表的某些分区,请在数据流中紧跟load语句之后包含partition filter语句(但是,在脚本中,filter语句可能不会紧跟在load语句之后。)filter语句可以包括分区列和非分区列的条件。
上面的命令只会加载分区
date == '20100819'
. 这只适用于分区列。