我有一个日期为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""
感谢任何帮助:)
答案 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);
}
}
}