Поток данных сопоставления фабрики данных Azure: отметка времени от эпохи до даты и времени

У меня есть источник на основе JSON, который я хотел бы преобразовать с помощью потока данных сопоставления ADF. У меня есть строка, содержащая значение временной метки эпохи, которое я хочу преобразовать в значение Datetime, чтобы позже погрузить его в файл Parquet.

Вы знаете способ? Документы на этом языке находятся здесь.

Исходный файл:

{
  "timestamp":"1574127407",
  "name":"D.A."
}

person Daniel Ferreira    schedule 30.11.2019    source источник


Ответы (1)


Используйте toTimestamp () и установите желаемое форматирование в качестве второго параметра.

toTimestamp(1574127407*1000l)

Из строки:

toTimestamp(toInteger(toString(byName('timestamp')))*1000l,'yyyy-MM-dd HH:mm:ss')

person Mark Kromer MSFT    schedule 01.12.2019
comment
Спасибо, Даниэль ... Еще одно чуть более элегантное обновление этого решения: toTimestamp (seconds (toInteger (toString (byName ('timestamp')))), 'yyyy-MM-dd HH: mm: ss') - person Mark Kromer MSFT; 02.12.2019
comment
Большое спасибо за помощь, Марк, все отлично сработало! Я никогда раньше не видел эту технику. Очень доволен! - person Daniel Ferreira; 03.12.2019
comment
Если у вас есть полная метка времени в миллисекундах, toInteger не хватит (он переполняется и завершается с ошибкой), для этого есть toLong функция: toTimestamp(toLong(toString(byName('timestamp_milliseconds'))),'yyyy-MM-dd HH:mm:ss') - person Guilherme Rossato; 20.11.2020