Перейти к основному содержимому

CSVReader

Описание​

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

Теги​

csv, parse, record, row, reader, delimited, comma, separated, values

Свойства​

НазваниеОписание
Schema Access StrategyУказывает, как получить схему, которая будет использоваться для интерпретации данных.
Schema RegistryУказывает службу контроллера, которую следует использовать для реестра схемThis Property is only considered if the [Schema Access Strategy] Property is set to one of the following values: [Schema Reference Reader], [Use 'Schema Name' Property]
Schema NameУказывает имя схемы для поиска в свойстве реестра схем Поддерживает язык выражений: true (будет оцениваться с использованием атрибутов файла потока и переменных среды)This Property is only considered if the [Schema Access Strategy] Property has a value of "Use 'Schema Name' Property".
Schema VersionУказывает версию схемы для поиска в реестре схем. Если не указано, будет получена последняя версия схемы. Поддерживает язык выражений: true (будет оцениваться с использованием атрибутов файла потока и переменных среды)This Property is only considered if the [Schema Access Strategy] Property has a value of "Use 'Schema Name' Property".
Schema BranchУказывает имя ветки, которую нужно использовать при поиске схемы в реестре схем. Если выбранный реестр схем не поддерживает ветки, это значение будет проигнорировано. Поддерживает язык выражений: true (будет оцениваться с использованием атрибутов файла потока и переменных среды)This Property is only considered if the [Schema Access Strategy] Property has a value of "Use 'Schema Name' Property".
Schema TextТекст схемы в формате Avro Поддерживает язык выражений: true (будет оцениваться с использованием атрибутов файла потока и переменных среды)This Property is only considered if the [Schema Access Strategy] Property has a value of "Use 'Schema Text' Property".
Schema Reference ReaderРеализация сервиса, отвечающая за чтение атрибутов или содержимого FlowFile для определения идентификатора ссылки на схемуThis Property is only considered if the [Schema Access Strategy] Property has a value of "Schema Reference Reader".
CSV ParserУказывает, какой синтаксический анализатор использовать для чтения CSV-записей. ПРИМЕЧАНИЕ: разные синтаксические анализаторы могут поддерживать разные наборы функций и демонстрировать разные уровни производительности.
Date FormatУказывает формат, который следует использовать при чтении/записи полей даты. Если не указано, поля даты будут считаться количеством миллисекунд с начала эпохи (полночь 1 января 1970 года по Гринвичу). Если указано, значение должно соответствовать простому формату даты Java (например, MM/dd/yyyy для двухзначного месяца, за которым следует двухзначный день, за которым следует четырёхзначный год, разделённые символами «/», как в 01/01/2017).
Time FormatУказывает формат, используемый при чтении/записи полей времени. Если не указано, то поля Time будут содержать количество миллисекунд с начала эпохи (полночь 1 января 1970 года по Гринвичу). Если указано, то значение должно соответствовать формату Simple Date в Java (например, HH:mm:ss для двухзначного часа в 24-часовом формате, за которым следует двухзначная минута, за которой следует двухзначная секунда, разделенные символами ':', как в 18:04:15).
Timestamp FormatУказывает формат, используемый при чтении/записи полей Timestamp. Если не указано, поля Timestamp будут считаться количеством миллисекунд с начала эпохи (полночь 1 января 1970 года по Гринвичу). Если указано, значение должно соответствовать формату Java Simple Date (например, MM/dd/yyyy HH:mm:ss для двухзначного месяца, за которым следует двухзначный день, за которым следует четырехзначный год, разделенные символами «/»; затем следует двухзначный час в 24-часовом формате, за которым следует двухзначная минута, за которой следует двухзначная секунда, разделенные символами «:», как в 01/01/2017 18:04:15).
CSV FormatSpecifies which "format" the CSV data is in, or specifies if custom formatting should be used.
Value SeparatorСимвол, используемый для разделения значений/полей в записи CSV. Если свойство было задано с помощью языка выражений, но во время выполнения выражение оценивается как недопустимый разделитель значений, то оно будет пропущено и будет использоваться разделитель значений по умолчанию. Поддерживает язык выражений: true (будет оцениваться с использованием атрибутов файла потока и переменных среды)This Property is only considered if the [CSV Format] Property has a value of "Custom Format".
Record SeparatorУказывает символы, которые следует использовать для разделения записей CSV.This Property is only considered if the [CSV Format] Property has a value of "Custom Format".
Treat First Line as HeaderУказывает, следует ли считать первую строку CSV заголовком или записью. Если стратегия доступа к схеме указывает, что столбцы должны быть определены в заголовке, то это свойство будет игнорироваться, так как заголовок всегда должен присутствовать и не будет обрабатываться как запись. В противном случае, если значение равно 'true', то первая строка данных CSV не будет обрабатываться как запись, а если 'false', то первая строка будет интерпретироваться как запись.
Ignore CSV Header Column NamesЕсли первая строка CSV-файла является заголовком, а заданная схема не соответствует полям, указанным в строке заголовка, то это свойство определяет, как Reader будет интерпретировать поля. Если это свойство имеет значение true, то имена полей, сопоставленные с каждым столбцом, определяются только заданной схемой, а поля, отсутствующие в схеме, будут игнорироваться. Если это свойство имеет значение false, то имена полей, указанные в заголовке CSV-файла, будут использоваться в качестве имен полей.
Quote CharacterСимвол, который используется для заключения значений в кавычки, чтобы не нужно было использовать экранирующие символы. Если свойство было задано с помощью языка выражений, но во время выполнения выражение оценивается как недопустимый символ кавычек, то он будет пропущен и будет использоваться символ кавычек по умолчанию. Поддерживает язык выражений: true (будет оцениваться с использованием атрибутов файла потока и переменных среды)This Property is only considered if the [CSV Format] Property has a value of "Custom Format".
Escape CharacterСимвол, который используется для экранирования символов, имеющих особое значение для синтаксического анализатора CSV. Если свойство было задано с помощью языка выражений, но во время выполнения выражение оценивается как недопустимый символ экранирования, то он будет пропущен и будет использован символ экранирования по умолчанию. Если установить для него пустую строку, то не следует использовать экранирующие символы. Поддерживает язык выражений: true (будет оцениваться с использованием атрибутов файла потока и переменных среды)This Property is only considered if the [CSV Format] Property has a value of "Custom Format".
Comment MarkerСимвол, который используется для обозначения начала комментария. Любая строка, начинающаяся с этого комментария, будет проигнорирована. Поддерживает язык выражений: true (будет оцениваться с использованием атрибутов файла потока и переменных среды)This Property is only considered if the [CSV Format] Property has a value of "Custom Format".
Null StringУказывает строку, которая, если присутствует в CSV в качестве значения, должна считаться нулевым полем вместо использования буквального значения. This Property is only considered if the [CSV Format] Property has a value of "Custom Format".
Trim FieldsСледует ли удалять пробелы в начале и конце полейThis Property is only considered if the [CSV Format] Property has a value of "Custom Format".
Character SetКодировка символов, используемая для кодирования/декодирования файла CSV
Allow Duplicate Header NamesWhether duplicate header names are allowed. Header names are case-sensitive, for example "name" and "Name" are treated as separate fields.
Handling of duplicate header names is CSV Parser specific (where applicable):
  • Apache Commons CSV - duplicate headers will result in column data "shifting" right with new fields created for "unknown_field_index_X" where "X" is the CSV column index number
  • Jackson CSV - duplicate headers will be de-duplicated with the field value being that of the right-most duplicate CSV column
  • FastCSV - duplicate headers will be de-duplicated with the field value being that of the left-most duplicate CSV columnThis Property is only considered if the [CSV Format] Property has a value of "Custom Format". | | Trim double quote | Whether or not to trim starting and ending double quotes. For example: with trim string '"test"' would be parsed to 'test', without trim would be parsed to '"test"'.If set to 'false' it means full compliance with RFC-4180. Default value is true, with trim.This Property is only considered if the [CSV Format] Property has a value of "RFC 4180". |