Я не думаю, что есть способ сделать это с помощью Pig Latin. Чтобы решить подобную проблему, я написал себе UDF, который является только оболочкой для String.format
:
import java.io.IOException;
import org.apache.pig.EvalFunc;
import org.apache.pig.data.Tuple;
public class SPRINTF extends EvalFunc<String> {
@Override
public String exec(Tuple input) throws IOException {
if (input.size() != 2) { return null; }
String output = null;
try {
String format = (String) input.get(0);
String value = input.get(1).toString();
switch (format.charAt(format.length()-1)) {
case 'b':
case 'B':
case 'h':
case 'H':
case 's':
case 'S':
case 'c':
case 'C':
output = String.format(format, value);
break;
case 'd':
case 'o':
case 'x':
case 'X':
output = String.format(format, Integer.parseInt(value));
break;
case 'e':
case 'E':
case 'f':
case 'g':
case 'G':
case 'a':
case 'A':
output = String.format(format, Double.parseDouble(value));
break;
}
return output;
} catch (Exception e) { return null; }
}
}
Может, конечно, быть улучшен, но это должно дать вам представление о том, как начать.