PIG - 将输入日期转换为UTC时区

时间:2016-02-09 04:37:34

标签: hadoop timezone apache-pig utc

我有一个日期为PST格式的输入文件

example => 2014-02-04 05:46:36.0

我需要使用猪语法将此日期转换为UTC。我尝试使用ToDate(input_date_column,'yyyy-MM-dd HH:mm:ss.SS','UTC')但它不起作用。< / p>

Error shown - java.lang.IllegalArgumentException: Invalid format: ""2014-02-04 05:46:36.0""

感谢任何帮助:)

1 个答案:

答案 0 :(得分:1)

我真的找不到这个的构建方法

所以我编写了一个用户定义的函数并将其用于我的猪脚本

就是这样 -

public class convertToUTC extends EvalFunc<String> {
        @Override
        public String exec(final Tuple input) throws IOException {
            if (input == null || input.size() == 0) {
                return null;
            }
            try {
                String date = input.get(0).toString();
                Timestamp timestamp = Timestamp.valueOf(date);
                Calendar calendar = Calendar.getInstance();
                calendar.setTime(timestamp);
                calendar.add(Calendar.HOUR, 8);
                Timestamp UTCTimestamp = new Timestamp(calendar.getTime().getTime());
                return UTCTimestamp.toString();
            }
            catch (Exception e) {
                throw WrappedIOException.wrap("Caught exception processing input row ", e);
            }
        }
    }