我的示例文件有一列包含四位十六进制数 (7AA0),我需要将其转换为十进制数 (31392)。知道怎么做吗?
我在互联网上看到了以下代码,它使用 Java 内置类进行反之亦然,但我不知道如何反过来做:
--invoker.pig
define hex InvokeForString('java.lang.Integer.toHexString', 'int');
divs = load 'NYSE_daily' as (exchange, symbol, date, open, high, low,
close, volume, adj_close);
nonnull = filter divs by volume is not null;
inhex = foreach nonnull generate symbol, hex((int)volume);
最佳答案
define hex InvokeForInt('java.lang.Integer.parseInt','String int','true');
a = LOAD 'hex.txt' using PigStorage() as (hex:chararray);
b = foreach a generate hex($0, 16);
dump b;
如果 hex.txt 包含:
abc
10
1
1abc
上面的代码会打印
(2748)
(16)
(1)
(6844)
关于java - 如何在 Pig Latin 中将十六进制转换为十进制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33811327/