在pig

时间:2015-10-08 12:55:58

标签: hadoop apache-pig

我写了一个简单的猪脚本,它从2个文件中读取数据作为avro记录。然后我根据两个文件的ID对它们进行连接。示例sample.pig

sample1 = LOAD '/dumpedFromAnotherPigScript' using AvroStorage();
sample2 = LOAD '/fromExistingFile' using AvroStorage();
describe sample1;
sample1: {rootObjectId: chararray, orderId: long}
describe sample2;
sample2: {objectId: chararray, name: chararray}
joined = join sample2 by objectId, sample1 by rootObjectId;
store joined into '/joinedpath';

当我像这样进行连接时,在执行PigSchema2Avro.convertRecord()时会收到SchemaParseException。异常消息为:Illegal character in: sample2::objectId

只有在我尝试加入时才会发生这种情况。我只是做转储时工作正常。此外,sample1实际上是从一个文件加载的,该文件的内容是使用first-sample.pig从另一个猪脚本AvroStorage填充的。 sample2从包含avro记录的现有文件加载。奇怪的是,如果我不将first-sample.pig中的记录存储到/dumpedFromAnotherPigScript位置并直接合并sample.pig脚本,那么一切正常。我无法理解这里的区别。有线索吗?

0 个答案:

没有答案