我有一个长串,有时是字符串“无限”或“南”。假设a是记录,b是长记录:
我试过。。。
FOREACH A GENERATE (B is not null?B:-1)
尽管上面的说法并不准确,因为有时“b”显然是一个字符串。是否有一些条件或复合条件来检查它是否不为null,1)不是字符串或2)强制转换b,以便我可以确保它不为null,并且在条件中不以“nan”开头?
我的目标是使long转换成一个数字(如果是“nan”,则为-1,如果不是,则保持不变)。
如果存在,描述将显示以下内容(如果不存在,则显示nan):
{“b”:28.2524232}
2条答案
按热度按时间t40tm48m1#
可能是这样的:
因为“nan”和“infinity”pig可能会推断出一个bitearray或chararray,所以请检查描述为gobrewers14的建议。
尽管您可以加载模式并将其指定为chararray,然后像我那样进行转换:)
注意:不需要“b is not null”,但如果是;)
mhd8tkvw2#
试试这个,
首先将长数据加载为chararray格式,然后对其执行条件,然后再转换回long格式。例如,
希望对我有用。