【发布时间】:2015-11-26 11:14:24
【问题描述】:
我正在用 Pig Latin 编写一个脚本,该脚本将在 PIG 0.15.0 中通过 Hadoop 2.7.1 运行,该脚本获取 JSON 消息列表并处理其中的信息。 JSON 看起来像这样:
{
"var1": "xxx",
"var2": "yyy",
"var3": "zzz",
"timestamp": "1448283242297",
}
我正在使用以下命令加载文件:
rawdata = LOAD '/opt/test.json' USING JsonLoader('var1:chararray,var2:chararray,var3:chararray,timestamp: chararray');
当我尝试使用 ToDate 函数转换时间戳值时,出现格式错误,因为它接收的是字符串,而不是 Long,因此它需要一个可读的日期。
indata = FOREACH rawdata GENERATE var1,var2,var3,ToDate(timestamp) as timel;
java.lang.IllegalArgumentException: Invalid format: "1448283242297" is malformed at "2297"
我在文档中读到不支持从 String 转换为 Long。有没有办法从该值中获取日期?
【问题讨论】:
标签: json hadoop apache-pig