【问题标题】:extracting date from timestamp in pig从猪的时间戳中提取日期
【发布时间】:2017-01-12 13:36:09
【问题描述】:

首先,我运行了这段代码,它通过了。现在,我只想从包含数据和时间的时间戳中提取日期。但是,我不知道该怎么做。我使用了GetYearGetMonthGetDay,但总是弹出错误。

 define Quantile datafu.pig.stats.Quantile('21'); data_raw = LOAD 'California/2016/March-2016.csv' USING PigStorage(',') AS (tmc_code:chararray, measurement_tstamp:chararray, speed:int, average_speed:int, reference_speed:int, travel_time_minutes:int,confidence_score:int, cvalue:int);

 filtered_data = FILTER data_raw BY confidence_score == 30;

 data_reqd = GROUP filtered_data BY (tmc_code, measurement_tstamp);

 quantiles = FOREACH data_reqd GENERATE group.tmc_code, ToDate(group.measurement_tstamp,'YYYY-MM-DD HH:mm:ss') AS date, Quantile(filtered_data.speed);

 results = Limit quantiles 10;

 DUMP results;

如果有人能帮我从measurement_tstamp 中提取日期,我将不胜感激。

【问题讨论】:

  • 错误是什么?

标签: date apache-pig


【解决方案1】:

你可以这样做

results_new = FOREACH quantiles GENERATE CONCAT(CONCAT(CONCAT((chararray)GetYear(date),'-')),(CONCAT((chararray)GetMonth(date),'-')),(chararray)GetDay(date)) AS Day;

我已经回答了类似的问题here

【讨论】:

  • 我用过,但是弹出了这个错误。错误 1045: 无法推断 org.apache.pig.builtin.CONCAT 的匹配函数为多个或都不匹配。请使用显式演员表。
  • 像这样 chararrayGetYear(date) 将单个项目转换为 chararray
猜你喜欢
  • 1970-01-01
  • 2018-07-18
  • 2017-02-01
  • 1970-01-01
  • 2020-06-27
  • 2021-12-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多