Nano Hash - криптовалюты, майнинг, программирование

Разница во времени эпохи свиньи

У меня есть 3 столбца, которые содержат start_time , end_time и tags. Время представлено в формате времени эпохи, как показано в примере ниже. Я хочу найти строки, между которыми разница во времени составляет 1 час.

Пример:

Start_time     End_Time    Tags
1235000081    1235000501  "Answered"
1235000081    1235000551  "Answered"

Мне нужно получить столбец тегов, если разница во времени меньше часа.

Я хочу сделать это в PIG - кто-нибудь может помочь?


  • мы можем помочь вам, если вы можете приложить свои усилия для достижения надлежащего результата. 28.06.2016

Ответы:


1

ввод.txt

1235000081  1235000501  Answered
1235000081  1235000551  Answered

сценарий свиньи

A =  Load '/home/kishore/input.txt' as (col1:long, col2:long, col3:chararray);
B = Foreach A generate ToDate(col1) as startdate,ToDate(col2) as enddate,col3;    
C = Filter B by GetHour(enddate)-GetHour(startdate) == 1;   
Dump C;

вы можете отфильтровать строку на основе вашего условия, например >,‹,==

28.06.2016
  • Спасибо, однако мне нужно вызвать/определить любой UDF для GetHour? 29.06.2016
  • Я попытался DUMP вывести из отношения B, я получаю неправильные значения ... например, описать B; B: {StartTime: datetime, EndTime: datetime} DUMP B; (1970-01-15T00:03:20.081-07:00,1970-01-15T00:03:20.501-07:00) 29.06.2016

  • 2

    В случае, если вы хотите сохранить поля даты в виде временных меток, решение будет следующим:

    data =  LOAD '/path/to/your/input' as (Start_Time:long, End_Time:long, Tags:chararray);
    data_proc = FOREACH data GENERATE *, ToDate(Start_Time*1000) as Start_Time,ToDate(End_Time*1000) as End_Time;    
    output = FILTER data_proc BY GetHour(End_Time)-GetHour(Start_Time) == 1;   
    Dump @;
    

    Одна важная вещь заключается в том, что Pig ToDate UDF требует метки времени с точностью до миллисекунд, поэтому вам нужно будет просто умножить поля даты на 1000 перед использованием этого UDF.

    29.06.2016
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..