Use cast(expr as <type>). nullreturns if the conversion failed.
case when cast(col as double) is null then 'N' else 'Y' end as isNumber
WHERE: cast(col as double) is not null
isNumber:
create temporary macro isNumber(s string)
cast(s as double) is not null;
:
hive> select isNumber('100.100'), isNumber('100'), isNumber('.0'), isNumber('abc');
OK
_c0 _c1 _c2 _c3
true true true false
, cast(s as Int)
.