Преобразование поля данных внутри фрейма данных из любого формата в фиксированный формат в Spark Scala - PullRequest
0 голосов
/ 14 февраля 2019

В моем Spark DataDrame есть столбец даты, который содержит несколько строковых форматов даты (это может быть MM-dd-yyyy, dd-MM-yyyy, MM.dd.yyyy).Я хотел бы привести все это к MM/dd/yyyy. Я пытался использовать регулярные выражения для различения форматов и использования udfs, я не мог найти их очень отказоустойчивыми. Я считаю, что есть функции SQL, которые мы можем использовать напрямую, без дорогих и неэффективныхпереформатирование, но я не знаю о них, я попробовал их, но не смог найти никакого решения.

Есть ли лучший способ сделать это?

1 Ответ

0 голосов
/ 14 февраля 2019

UDF не работает, если это итератор.Идентификация ММ-дд-гггг или дд-мм-гггг по данным невозможна, если месяц и день меньше 12 и вы ничего не можете сделать.Лучший способ добиться этого - передать формат даты из источника.Любая исходная система будет иметь синхронный формат даты.Если вы можете получить формат для каждой даты в отдельном столбце, то эта проблема будет решена.Если это невозможно, используйте Итератор строк и преобразуйте этот конкретный столбец в статический формат неявной даты yyyy-MM-dd для Spark.затем реализуй свою структуру

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...