Как я могу преобразовать временную метку Unix в дату в Foundry Contour?

#palantir-foundry #foundry-contour

#palantir-foundry #foundry-контур

Вопрос:

Редакторы таблиц и столбцов Foundry Contour позволяют легко анализировать строку, содержащую некоторую комбинацию года, месяца и дня в качестве даты, но я не смог понять, как преобразовать Long, представляющий временную метку Unix, в дату.

Есть ли какой-то трюк, который я упускаю? Я пробовал CAST(utc_column AS date) , что приводит к ошибке, и я изучил «Даты синтаксического анализа», но, похоже, для этого подходят только строки, содержащие некоторую комбинацию года, месяца и дня.

Ответ №1:

Вы не можете приводить длинные значения к датам напрямую, но вы можете приводить их к временным меткам. Если вам конкретно нужна дата, а не временная метка, вы можете выполнить приведение к дате.

Следует обратить внимание на то, что Spark предполагает, что значения времени, которые вы преобразуете во временные метки, указаны в секундах с эпохи, а не в миллисекундах с эпохи.

В результате конечный запрос может быть чем-то вроде:

 CAST(CAST((utc_column) AS TIMESTAMP) AS DATE)
  

или

 CAST(CAST((utc_column / 1000) AS TIMESTAMP) AS DATE)
  

в зависимости от масштабирования вашей базовой временной метки Unix. Это базовая функция Spark, и команда Palantir ищет способы улучшить работу с этим литьем.