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

标签 hadoop timezone apache-pig utc

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

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

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

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

感谢任何帮助:)

最佳答案

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

所以我写了一个用户定义的函数并将它用到我的 pig 脚本中

它是这样的-

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);
            }
        }
    }

关于hadoop - PIG - 将输入日期转换为 UTC 时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35284005/

相关文章:

hadoop - 无法从 loadFunc org.apache.pig.builtin.AvroStorage 获取架构

dictionary - 一些 map 在运行 hadoop 作业时会丢失用户定义的计数器

hadoop - Apache PIG - 分组依据

java - 包 org.apache.hadoop.ipc.protobuf 为空

python - 如何轻松地将 GQLQuery 的日期字段格式化为另一个时区?

timezone - 时区应该是网络应用程序中的用户首选项吗?

java - 为什么不推荐使用 Date.getTimezoneOffset?

algorithm - Pig 如何有效地按 0.0001 之类的比率对 1TB 数据进行采样?

hadoop - 使用谓词下推在 Hive 中动态加载分区

Hadoop 透明地处理压缩,但不拆分 LZO