Набор данных импорта Dataprep не обнаруживает заголовки в первой строке автоматически

Я импортирую набор данных из Google Cloud Storage (параметризованный) в Dataprep. До сих пор это работало отлично, и одна из функций, которые мне понравились, это то, что он автоматически определяет, что первая строка в моем (application / octet-stream) .csv файле является моими заголовками.

Однако сегодня я попытался импортировать новый набор данных, и он не обнаружил заголовки, но автоматически назначил столбец1, столбец2 ...

Что изменилось и почему это так. Я установил автоматическое определение и использую UTF-8:


person JohnAndrews    schedule 20.06.2019    source источник


Ответы (2)


Хотя опция автоматического обнаружения обычно довольно хороша, бывают случаи, когда она не работает по многим причинам. Я специально заметил это, когда имена полей содержат определенные символы (например, запятую, невидимые символы, такие как символы нулевой ширины, не являющиеся соединителями, нулевые байты), или когда в одном файле используются несколько разных стилей разделителей новой строки.

Другой случай, который я видел, - это когда столбцов данных было больше, чем заголовков.

Как вы уже заметили, вы можете использовать следующий фрагмент, чтобы сделать в основном то же самое:

rename type: header method: filter sanitize: true

. . . или выполните отдельные шаги рецепта, чтобы преобразовать первую строку в заголовок, а затем переименовать ее по своему усмотрению.

Однако чаще всего я обнаруживал, что когда автоматическое обнаружение не работает в ранее работающем файле, это, как правило, является признаком какой-то проблемы с исходным файлом. Я бы искал несоответствующие данные, а также неуместные запятые в выводе, а также сравнивал заголовок и некоторые строки данных с исходным источником с помощью редактора открытого текста.

Когда ничего не помогает, вы можете попробовать валидатор CSV. . . но по моему опыту они имеют тенденцию быть невероятно самоуверенными, когда дело доходит до параметров форматирования файла, поэтому в зависимости от системы, генерирующей CSV, она может либо пропустить какие-либо ошибки, либо дать ложные срабатывания. У меня было два случая, когда автоопределение не выполнялось без видимой причины на идеально чистых файлах, поэтому вполне возможно, что этот процесс просто по какой-то причине был пропущен.

Также следует отметить, что если у вас есть структурированный файл, который был правильно обнаружен, но вы хотите его восстановить, вы можете перейти к сведениям о наборе данных, выбрать "... "(Подробнее) и выберите" Удалить структуру ... "(я надеюсь, что однажды они позволят вам сделать обратное, если вы захотите добавить структуру к необработанному набору данных или обойти подобные ошибки!)

Удачи!

person justbeez    schedule 25.06.2019
comment
У меня есть два совершенно одинаковых файла: один с одной строкой (и одним заголовком), а другой файл с несколькими строками (и одним заголовком). Тем не менее, он не определяет заголовки для файла с одной строкой, но обнаруживает заголовки для файла с несколькими строками. Поскольку они хранятся в одной папке, что мне делать, чтобы обращаться с ними одинаково? - person JohnAndrews; 06.08.2019

Может быть разрешено как преобразование в потоке:

rename type: header method: filter sanitize: true
person JohnAndrews    schedule 25.06.2019