gpt4 book ai didi

hadoop - pig : Invalid field Projection; Projected Field does not exist

转载 作者:可可西里 更新时间:2023-11-01 14:22:03 29 4
gpt4 key购买 nike

describe filter_records;

这给了我以下格式:

filter_records: {details1: (firstname: chararray,lastname: chararray,age: int,gender: chararray),details2: (firstname: chararray,lastname: chararray,age: int,gender: chararray)}

我想显示 details1details2 中的 firstname。我试过这个:

display_records = FOREACH filter_records GENERATE display1.firstname;

但是我得到了错误:

Invalid field projection. Projected field [display1] does not exist in schema: details1:tuple(firstname:chararray,lastname:chararray,age:int,gender:chararray),details2:tuple(firstname:chararray,lastname:chararray,age:int,gender:chararray).

请提出此错误的原因以及解决方法。

最佳答案

我在 filter_records 中没有看到任何关系名称 display1。我猜你使用的不是 details1.firstname display1.firstname。你能像这样改变你的脚本吗?

display_records = FOREACH filter_records GENERATE details1.firstname;

您似乎在 details1 和 details2 中使用了相同的变量名称(名字、姓氏、年龄、性别)。这样打印会报重复错误

display_records = FOREACH filter_records GENERATE details1.firstname,details2.firstname;

要解决此问题,您需要在 details1 和 details2 关系中提供唯一的名称,您可以像这样更改加载模式吗?或者您可以在 details1 和 details2 中提供任何唯一的名称。

details1:tuple(firstname1:chararray,lastname1:chararray,age1:int,sex1:chararray),details2:tuple(firstname2:chararray,lastname2:chararray,age2:int,sex2:chararray)

现在当你这样尝试时,你会从 details1 和 details2 中得到名字

display_records = FOREACH filter_records GENERATE details1.firstname1,details2.firstname2;

关于hadoop - pig : Invalid field Projection; Projected Field does not exist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28280832/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com