pig错误1066:无法打开别名测试的迭代器

55ooxyrt  于 2021-06-03  发布在  Hadoop
关注(0)|答案(3)|浏览(318)

我得到:

org.apache.pig.impl.logicalLayer.FrontendException: ERROR 1066: Unable to open iterator for test

当我有密码时:

my_file = LOAD '$my_records_file' USING PigStorage('\t') AS (field0:chararray, field1:int);
test = FILTER my_file BY field0 != null;

为什么我会犯这个错误?

3gtaxfhh

3gtaxfhh1#

我想您要筛选具有空值的行吗?语法为field0不为空。

my_file = LOAD '$my_records_file' USING PigStorage('\t') AS (field0:chararray, field1:int);
test = FILTER my_file BY field0 IS NOT NULL;

但如果要筛选值等于null的行,则代码为:

my_file = LOAD '$my_records_file' USING PigStorage('\t') AS (field0:chararray, field1:int);
test = FILTER my_file BY field0 !='null';
628mspwn

628mspwn2#

代码:

my_file = LOAD '$my_records_file' USING PigStorage('\t') AS (field0:chararray, field1:int);
test = FILTER my_file BY field0 != null;

有一个错误。 field0 != null 应该是 field0 != 'null' .
此代码:

my_file = LOAD '$my_records_file' USING PigStorage('\t') AS (field0:chararray, field1:int);
test = FILTER my_file BY field0 != 'null';

更正错误。

eh57zj3b

eh57zj3b3#

产生此错误的另一个原因是,通过本地模式或hdfs模式运行清管器。除此之外,控制台上还有一条消息,无法从路径读取数据。如果是这种情况,那么首先检查您正在本地模式或hdfs模式下使用pig。在本地模式下,pig将从lfs(本地文件系统)获取输入数据。但是,在hdfs中,它将从hdfs目录获取输入数据。
作业提交期间的后端错误消息org.apache.pig.backend.executionengine.execute:错误2118:输入路径不存在:
pig堆栈跟踪:错误1066:无法打开别名的迭代器
因此,请确保在加载文件时避免此错误。

相关问题