У меня есть столбец с датами (в строковом формате) в Dataprep: ггггммдд. Я хотел бы, чтобы он стал объектом datetime. Какую функцию/преобразование следует применить для автоматического достижения этого результата?
Dataprep изменяет дату str yyyymmdd на столбец datetime
Ответы (1)
В этом случае вам вообще не нужно применять преобразование — вы можете просто изменить тип столбца на «Дата/время» и выбрать соответствующие параметры формата.
Примечание. Это одна из наименее интуитивно понятных частей Dataprep, поскольку вам нужно выбрать неправильный формат (в данном случае yy-mm-dd
), прежде чем вы сможете перейти к правильный формат (yyyymmdd
).
Вот скриншот окна типа Дата/Время, иллюстрирующий это:
Хотя это неинтуитивно, это позволит правильно обрабатывать столбец как дату в будущих операциях, включая назначение правильного типа в операциях экспорта (например, BigQuery).
Через пользовательский интерфейс это сгенерирует следующий сценарий Wrangle:
settype col: YourDateCol customType: 'Datetime','yy-mm-dd','yyyymmdd' type: custom
Согласно документации, это также должно работать (и более кратко). ):
settype col: YourDateCol type: 'Datetime','yy-mm-dd','yyyymmdd'
Обратите внимание: если вам абсолютно необходимо сделать это в контексте функции, вы можете извлечь части даты, используя SUBSTRING
/LEFT
/RIGHT
и передать их в файл DATE
или DATETIME
для создания объекта datetime. Как вы, наверное, уже заметили, DATEFORMAT
вернет NULL, если исходный столбец еще не имеет тип Datetime
.
(Однако с точки зрения производительности для большого набора данных, вероятно, было бы гораздо эффективнее либо просто изменить, либо создать новый столбец с правильным типом, чем выполнять эти дополнительные операции с таким количеством строк.)
!TEMPLATES
, где я храню общие базовые рецепты, как вы описали. Когда они мне нужны, я щелкаю ... рядом с ними и выбираю Сделать копию › Без ввода, чтобы клонировать его, а затем на копии щелкаю то же ... меню и выбираю Переместить..., что вызывает диалоговое окно, позволяющее вам переместить рецепт в другой поток или создать новый поток. Хотя это не так безболезненно, как должно быть, я считаю, что это быстрее, чем создавать рецепты шаг за шагом (вставляя строки из загруженного скрипта спора).
- person justbeez; 25.06.2019