Apache pig 如何在pig中的数据包内键入convert

Apache pig 如何在pig中的数据包内键入convert,apache-pig,Apache Pig,我有以下模式 x = foreach a generate ids as ids:bag{(mid: long)}; 这个很好用。但我实际上需要做以下几点: x = foreach a generate ids as ids:bag{((int)mid)}; 这将给出一个错误。我发现 x = foreach a generate ids as ids:bag{(mid:int)}; 这还不够好。谁能帮帮我吗 谢谢。猪身上有一个关于结肠后铸型的错误: 您需要的是发出另一个FOREACH语

我有以下模式

x = foreach a generate ids as ids:bag{(mid: long)};
这个很好用。但我实际上需要做以下几点:

x = foreach a generate ids as ids:bag{((int)mid)};
这将给出一个错误。我发现

x = foreach a generate ids as ids:bag{(mid:int)}; 
这还不够好。谁能帮帮我吗


谢谢。

猪身上有一个关于结肠后铸型的错误:


您需要的是发出另一个FOREACH语句。

正如Ruslan提到的,这是一个bug。您可以使用括号进行“显式”转换:

x = foreach a generate ids as (bag{(mid:int)}) ids; 

你说“不够好”是什么意思?谢谢!我真正需要的是一个显式cast
x=foreach a生成id作为(bag{(int)mid)}id。写
(int)mid
mid:int
有什么区别吗?我注意到似乎有(例如,当转储avro模式时),我想要前者。