我有一个databag,其格式如下
{([ChannelName#{ (bigXML,[])} ])}
我有一个发出上述包的UDF。
现在我需要通过将DataBag中唯一的元组与Map中的给定Channel相对应来调用另一个UDF。
假设没有数据包和元组
([ChannelName#{ (bigXML,[])} ])
我可以使用$0.$0#'StdOutChannel'
访问数据
现在把一个元组放在一个包里面
{([ChannelName#{ (bigXML,[])} ])}
如果我做$0.$0.$0#'StdOutChannel'
(前置$ 0),我会收到以下错误
ERROR 1052: Cannot cast bag with schema bag({bytearray}) to map
如何访问数据包中的数据?
答案 0 :(得分:2)
尝试稍微解决这个问题。
让我们说你得到你的内心:
MYBAG = $0.$0#'StdOutChannel';
首先,您可以ILLUSTRATE
或DUMP
吗?
你可以用这个包做什么?通常FOREACH
超过里面的元组。
A = FOREACH MYBAG {
GENERATE $0 AS MyCharArray, $1 AS MyMap
};
ILLUSTRATE A; -- or if this doesn't work
DUMP A;
您是否可以通过互动方式进行尝试,并且可能会根据您尝试这些内容的某些细节再次编辑您的问题。
StackOverflow的一些编辑提示: