Поделиться через


COPY INTO

Область применения: флажок Databricks SQL флажок Databricks Runtime

Загружает данные из расположения файлов в таблицу Delta. Это повторная операция идемпотентной операции. Файлы в исходном расположении, которые уже загружены, пропускаются. Это верно, даже если файлы были изменены с момента их загрузки. Примеры см. в разделе Распространенные шаблоны загрузки данных с помощью COPY INTO.

Синтаксис

COPY INTO target_table [ BY POSITION | ( col_name [ , <col_name> ... ] ) ]
  FROM { source_clause |
         ( SELECT expression_list FROM source_clause ) }
  FILEFORMAT = data_source
  [ VALIDATE [ ALL | num_rows ROWS ] ]
  [ FILES = ( file_name [, ...] ) | PATTERN = glob_pattern ]
  [ FORMAT_OPTIONS ( { data_source_reader_option = value } [, ...] ) ]
  [ COPY_OPTIONS ( { copy_option = value } [, ...] ) ]

source_clause
  source [ WITH ( [ CREDENTIAL { credential_name |
                                 (temporary_credential_options) } ]
                  [ ENCRYPTION (encryption_options) ] ) ]

Параметры

  • target_table

    Определяет существующую таблицу Delta. Параметр target_table не должен содержать временную спецификацию.

    Если имя таблицы указано в виде расположения, например delta.`/path/to/table` , каталог Unity может управлять доступом к расположениям, в которые ведется запись. Вы можете выполнить запись во внешнее расположение, выполнив следующие действия:

    • Определите расположение как внешнее и предоставьте разрешения WRITE FILES для него.
    • Предоставьте разрешения WRITE FILES для именованных учетных данных хранилища, которые выполняют авторизацию для записи в расположение с помощью COPY INTO delta.`/some/location` WITH (CREDENTIAL <named-credential>).

    Дополнительные сведения см. в статье "Подключение к облачному хранилищу объектов" с помощью каталога Unity.

  • BY POSITION | ( col_name [ , <col_name> ... ] )

    Сопоставляет исходные столбцы с целевыми столбцами таблицы по порядковой позиции. Приведение соответствующих столбцов выполняется автоматически.

    Этот параметр поддерживается только для формата CSV-файла без заголовков. Необходимо указать FILEFORMAT = CSV. FORMAT_OPTIONS также должно быть задано значение ("headers" = "false") (FORMAT_OPTIONS ("headers" = "false") значение по умолчанию).

    Вариант синтаксиса 1. BY POSITION

    • Сопоставляет исходные столбцы с целевыми столбцами таблицы по порядковой позиции автоматически.
      • Сопоставление имен по умолчанию не используется для сопоставления.
      • IDENTITY столбцы и GENERATED столбцы целевой таблицы игнорируются при сопоставлении исходных столбцов.
      • Если число исходных столбцов не равно отфильтрованным целевым столбцам таблицы, COPY INTO возникает ошибка.

    Вариант синтаксиса 2. ( col_name [ , <col_name> ... ] )

    • Сопоставляет исходные столбцы с указанными столбцами целевой таблицы относительной порядковой позицией, используя список имен столбцов целевой таблицы в скобках, разделенных запятыми.
      • Исходный порядок столбцов таблицы и имена столбцов не используются для сопоставления.
      • IDENTITY Столбцы и GENERATED столбцы не могут быть указаны в списке имен столбцов, в противном случае COPY INTO вызывает ошибку.
      • Указанные столбцы нельзя дублировать.
      • Если число исходных столбцов не равно указанным столбцам таблицы, COPY INTO возникает ошибка.
      • Для столбцов, не указанных в списке имен столбцов, присваивает значения по умолчанию, COPY INTO если таковые имеются, и назначается NULL в противном случае. Если какой-либо столбец не имеет значения NULL, COPY INTO возникает ошибка.
  • source

    Расположение файлов, из которых нужно загрузить данные. Файлы в этом расположении должны быть в формате, заданном с помощью параметра FILEFORMAT. Расположение предоставляется в виде URI.

    Доступ к исходному расположению можно предоставить следующим образом:

    • credential_name

      Необязательное имя учетных данных, используемое для доступа к месту хранения или записи в него. Эти учетные данные используются только в том случае, если расположение файла не включено во внешнее расположение. См . credential_name.

    • С помощью встроенных временных учетных данных.

    • Определив исходное расположение в качестве внешнего расположения и предоставив разрешения READ FILES для внешнего расположение через каталог Unity.

    • С помощью именованных учетных данных хранилища с разрешениями READ FILES, выполняющих авторизацию для чтения из расположения через каталог Unity.

    Если уже определен путь к внешнему расположению, разрешения для использования которого у вас есть, не нужно предоставлять встроенные или именованные учетные данные. Дополнительные сведения см. в статье "Создание внешнего расположения для подключения облачного хранилища к Azure Databricks ".

    Примечание.

    Если путь к исходному файлу является корневым путем, добавьте косую черту (/) в конце, например s3://my-bucket/.

    Допустимые варианты учетных данных:

    • AZURE_SAS_TOKEN для ADLS 2-го поколения и Хранилища BLOB-объектов Azure;
    • AWS_ACCESS_KEY, AWS_SECRET_KEY и AWS_SESSION_TOKEN для AWS S3.

    Допустимые варианты шифрования:

    • TYPE = 'AWS_SSE_C' и MASTER_KEY для AWS S3.

См. сведения о загрузке данных с помощью COPY INTO с временными учетными данными.

  • SELECT expression_list

    Выбирает указанные столбцы или выражения из исходных данных, прежде чем копировать их в разностную таблицу. Выражения могут быть любыми, которые вы используете с инструкциями SELECT, включая операции с окнами. Статистические выражения можно использовать только для глобальных агрегатов — для столбцов с этим синтаксисом нельзя использовать GROUP BY.

  • FILEFORMAT = data_source

    Формат загружаемых исходных файлов. Возможные значения: CSV, JSON, AVRO, ORC, PARQUET, TEXT, BINARYFILE.

  • VALIDATE

    Область применения: флажок Databricks SQL флажок Databricks Runtime 10.4 LTS и выше

    Данные, загружаемые в таблицу, проверяются, но не записываются в таблицу. Эти проверки включают:

    • Можно ли анализировать данные.
    • Соответствует ли схема таблице, или требуется доработка схемы.
    • Соблюдены ли все ограничения допустимости значений NULL и проверки.

    По умолчанию выполняется проверка всех загружаемых данных. Можно указать число строк, которые нужно проверить, используя ключевое слово ROWS, например VALIDATE 15 ROWS. Оператор COPY INTO возвращает предварительный просмотр данных из 50 строк или меньше, если используется число меньше 50 с ключевым словом ROWS ).

  • FILES

    Список имен файлов для загрузки с ограничением в 1000 файлов. Нельзя указывать с PATTERN.

  • PATTERN

    Стандартная маска, определяющая файлы, которые нужно загрузить из исходного каталога. Нельзя указывать с FILES.

    Расписание Description
    ? Соответствует любому одиночному знаку
    * Соответствует нескольким символам или их отсутствию
    [abc] Соответствует одиночному символу из кодировки {a, b, c}.
    [a-z] Соответствует одиночному символу из диапазона символов {a…z}.
    [^a] Соответствует одиночному символу, который не относится к кодировке или диапазону символов {a}. Обратите внимание, что символ ^ должен стоять непосредственно справа от открывающей скобки.
    {ab,cd} Соответствует строке из набора строк {ab, cd}.
    {ab,c{de, fh}} Соответствует строке из набора строк {ab, cde, cfh}.
  • FORMAT_OPTIONS

    Параметры, передаваемые модулю чтения источника данных Apache Spark для указанного формата. См. раздел Параметры формата для каждого формата файлов.

  • COPY_OPTIONS

    Параметры для управления командой COPY INTO.

    • force — логическое значение, по умолчанию false. Если задано значение true, идемпотентность отключается и файлы загружаются независимо от того, были ли они загружены ранее.
    • mergeSchema — логическое значение, по умолчанию false. Если задано значение true, схема может развиваться в соответствии с входящими данными.

COPY INTO Вызов одновременно

COPY INTO поддерживает одновременные вызовы к одной таблице. Если COPY INTO при одновременном вызове отдельных наборов входных файлов каждое вызов должно в конечном итоге завершиться успешно, в противном случае вы получите конфликт транзакций. COPY INTO не следует вызывать одновременно для повышения производительности; Одна COPY INTO команда с несколькими файлами обычно выполняется лучше, чем выполнение параллельных COPY INTO команд с одним файлом. COPY INTO можно вызывать одновременно, когда:

  • У нескольких производителей данных нет простого способа координации и не может сделать один вызов.
  • Когда очень большой каталог может быть приемлен вложенным каталогом по подкаталогу. При приеме каталогов с очень большим количеством файлов Databricks рекомендует использовать автозагрузчик по возможности.

Доступ к метаданным файла

Дополнительные сведения о доступе к метаданным для источников данных на основе файлов см. в статье Столбец метаданных файла.

Параметры формата

Универсальные параметры

Следующие параметры применяются ко всем форматам файлов.

Вариант
ignoreCorruptFiles

Тип: Boolean

Определяет, следует ли игнорировать поврежденные файлы. Если задано значение true, задания Spark будут продолжать выполняться при обнаружении поврежденных файлов, а прочитанное содержимое будет возвращено. Наблюдаемое как numSkippedCorruptFiles в
столбце operationMetrics журнала Delta Lake. Доступно в Databricks Runtime 11.3 LTS и более поздних версиях.

Значение по умолчанию: false
ignoreMissingFiles

Тип: Boolean

Определяет, следует ли игнорировать отсутствующие файлы. Если задано значение true, задания Spark будут продолжать выполняться при обнаружении отсутствующих файлов, а прочитанное содержимое будет возвращено. Доступно в Databricks Runtime 11.3 LTS и более поздних версиях.

Значение по умолчанию: false (true для COPY INTO).
modifiedAfter

Тип: Timestamp String, например 2021-01-01 00:00:00.000000 UTC+0.

Необязательная метка времени для приема файлов с меткой времени изменения после указанной метки времени.

Значение по умолчанию: нет
modifiedBefore

Тип: Timestamp String, например 2021-01-01 00:00:00.000000 UTC+0.

Необязательная метка времени для приема файлов с меткой времени изменения до указанной метки времени.

Значение по умолчанию: нет
pathGlobFilter или fileNamePattern

Тип: String

Потенциальная стандартная маска для выбора файлов. Эквивалент
PATTERN в COPY INTO; fileNamePattern можно использовать в read_files.

Значение по умолчанию: нет
recursiveFileLookup

Тип: Boolean

Следует ли пропустить вывод секции во время вывода схемы. Это не влияет на загрузку файлов.

Значение по умолчанию: false

JSON options

Вариант
allowBackslashEscapingAnyCharacter

Тип: Boolean

Разрешить ли обратные косые черты для экранирования любого символа, который следует за ними. Если параметр не включен, экранировать можно только те символы, которые явно указаны в спецификации JSON.

Значение по умолчанию: false
allowComments

Тип: Boolean

Разрешить ли использование комментариев в стиле Java, C и C++ (видов '/', '*' и '//') в проанализированном содержимом.

Значение по умолчанию: false
allowNonNumericNumbers

Тип: Boolean

Разрешить ли набор токенов, не равных числу (NaN), в качестве допустимых числовых значений с плавающей запятой.

Значение по умолчанию: true
allowNumericLeadingZeros

Тип: Boolean

Разрешить ли целочисленное число начинаться с дополнительных (игнорируемых) нули (например, 000001).

Значение по умолчанию: false
allowSingleQuotes

Тип: Boolean

Разрешить ли использование одинарных кавычек (апостроф, символ '\') для заключения в кавычки строк (имен и строковых значений).

Значение по умолчанию: true
allowUnquotedControlChars

Тип: Boolean

Разрешить ли строкам JSON содержать неэкранированные управляющие символы (символы ASCII со значением меньше 32, включая символы табуляции и перевода строки).

Значение по умолчанию: false
allowUnquotedFieldNames

Тип: Boolean

Разрешить ли использование имен полей, не заключенных в кавычки (которые разрешены в JavaScript, но не в спецификации JSON).

Значение по умолчанию: false
badRecordsPath

Тип: String

Путь для хранения файлов для записи сведений о неправильных записях JSON.

Значение по умолчанию: нет
columnNameOfCorruptRecord

Тип: String

Столбец для хранения записей, которые имеют неправильный формат и не могут быть проанализированы. Если в качестве mode для синтаксического анализа задано значение DROPMALFORMED, этот столбец будет пустым.

Значение по умолчанию: _corrupt_record
dateFormat

Тип: String

Формат синтаксического анализа строк даты.

Значение по умолчанию: yyyy-MM-dd
dropFieldIfAllNull

Тип: Boolean

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

Значение по умолчанию: false
encoding или charset

Тип: String

Имя кодировки файлов JSON. Список вариантов см. в java.nio.charset.Charset. Нельзя использовать UTF-16 и UTF-32, если multiline имеет значение true.

Значение по умолчанию: UTF-8
inferTimestamp

Тип: Boolean

Попытаться ли вывести строки меток времени как TimestampType. Если задано значение
true, вывод схемы может занять заметно больше времени. Необходимо включить cloudFiles.inferColumnTypes использование с автозагрузчиком.

Значение по умолчанию: false
lineSep

Тип: String

Строка между двумя последовательными записями JSON.

Значение по умолчанию None (Нет) охватывает \r, \r\n и \n.
locale

Тип: String

Идентификатор java.util.Locale. Влияет на синтаксический анализ даты, метки времени и десятичного разделителя по умолчанию в JSON.

Значение по умолчанию: US
mode

Тип: String

Режим средства синтаксического анализа для обработки неправильных записей. Возможные значения: 'PERMISSIVE',
'DROPMALFORMED' или 'FAILFAST'.

Значение по умолчанию: PERMISSIVE
multiLine

Тип: Boolean

Занимает ли запись JSON несколько строк.

Значение по умолчанию: false
prefersDecimal

Тип: Boolean

Пытается выводить строки как DecimalType не с плавающей или двойной тип, когда это возможно. Кроме того, необходимо использовать вывод схемы, включив его.
inferSchema или используется cloudFiles.inferColumnTypes с автозагрузчиком.

Значение по умолчанию: false
primitivesAsString

Тип: Boolean

Выводить ли примитивные типы, такие как числа и логические значения, как StringType.

Значение по умолчанию: false
readerCaseSensitive

Тип: Boolean

Указывает поведение учета регистра при включении rescuedDataColumn. Если значение равно true, столбцы данных, имена которых отличаются по регистру от схемы, восстанавливаются; в противном случае данные считываются без учета регистра. Доступно в Databricks Runtime
13.3 и выше.

Значение по умолчанию: true
rescuedDataColumn

Тип: String

Следует ли собирать все данные, которые не могут быть проанализированы из-за несоответствия типов данных или несоответствия схем (включая регистр столбцов), в отдельный столбец. Этот столбец включен по умолчанию при использовании Автозагрузчика. Дополнительные сведения см. в разделе "Что такое столбец спасенных данных?".

Значение по умолчанию: нет
singleVariantColumn

Тип: String

Следует ли принять весь документ JSON, проанализированный в один столбец Variant с заданной строкой в качестве имени столбца. При отключении поля JSON будут приема в собственные столбцы.

Значение по умолчанию: нет
timestampFormat

Тип: String

Формат для синтаксического анализа строк меток времени.

Значение по умолчанию: yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]
timeZone

Тип: String

Объект java.time.ZoneId, используемый при анализе меток времени и дат.

Значение по умолчанию: нет

CSV options

Вариант
badRecordsPath

Тип: String

Путь для хранения файлов для записи сведений о неправильных записях CSV.

Значение по умолчанию: нет
charToEscapeQuoteEscaping

Тип: Char

Символ, используемый для экранирования символа, используемого для экранирования кавычек. Например, для следующей записи: [ " a\\", b ]:

* Если символ для экранирования '\' не определен, запись не будет проанализирована. Средство синтаксического анализа будет считывать символы: [a],[\],["],[,],[ ],[b] и вызывать ошибку, так как не сможет найти закрывающую кавычку.
* Если символ для экранирования '\' определяется как '\', запись будет считываться с 2 значениями: [a\] и [b].

Значение по умолчанию: '\0'
columnNameOfCorruptRecord

> [! ПРИМЕЧАНИЕ] >> Поддерживается для автозагрузчика. Не поддерживается для COPY INTO.

Тип: String

Столбец для хранения записей, которые имеют неправильный формат и не могут быть проанализированы. Если в качестве mode для синтаксического анализа задано значение DROPMALFORMED, этот столбец будет пустым.

Значение по умолчанию: _corrupt_record
comment

Тип: Char

Определяет символ, обозначающий, что строка является комментарием, если он будет найден в начале строки текста. Используйте '\0', чтобы отключить пропуск комментария.

Значение по умолчанию: '\u0000'
dateFormat

Тип: String

Формат синтаксического анализа строк даты.

Значение по умолчанию: yyyy-MM-dd
emptyValue

Тип: String

Строковое представление пустого значения.

Значение по умолчанию: ""
encoding или charset

Тип: String

Имя кодировки CSV-файлов. Список вариантов см. в java.nio.charset.Charset. UTF-16 и UTF-32 использовать нельзя, если multiline имеет значение true.

Значение по умолчанию: UTF-8
enforceSchema

Тип: Boolean

Следует ли принудительно применять указанную или выведенную схему к CSV-файлам. Если параметр включен, заголовки CSV-файлов игнорируются. Этот параметр игнорируется по умолчанию при использовании Автозагрузчика для восстановления данных и разрешения на развитие схемы.

Значение по умолчанию: true
escape

Тип: Char

Escape-символ, используемый при анализе данных.

Значение по умолчанию: '\'
header

Тип: Boolean

Содержат ли CSV-файлы заголовок. При выводе схемы Автозагрузчик предполагает, что файлы имеют заголовки.

Значение по умолчанию: false
ignoreLeadingWhiteSpace

Тип: Boolean

Следует ли игнорировать начальные пробелы для каждого анализируемого значения.

Значение по умолчанию: false
ignoreTrailingWhiteSpace

Тип: Boolean

Следует ли игнорировать конечные пробелы для каждого анализируемого значения.

Значение по умолчанию: false
inferSchema

Тип: Boolean

Указывает, следует ли вычислять типы данных проанализированных записей CSV, или предполагается, что все столбцы имеют тип StringType. Требует дополнительного прохода по данным, если задано значение true. Для автозагрузчика используйте cloudFiles.inferColumnTypes вместо этого.

Значение по умолчанию: false
lineSep

Тип: String

Строка между двумя последовательными записями CSV.

Значение по умолчанию None (Нет) охватывает \r, \r\n и \n.
locale

Тип: String

Идентификатор java.util.Locale. Влияет на синтаксический анализ даты, метки времени и десятичного разделителя по умолчанию в CSV-файле.

Значение по умолчанию: US
maxCharsPerColumn

Тип: Int

Максимальное число символов, ожидаемое в значении для синтаксического анализа. Можно использовать, чтобы избежать ошибок памяти. По умолчанию имеет значение -1, что означает отсутствие ограничений.

Значение по умолчанию: -1
maxColumns

Тип: Int

Фиксированное ограничение количества столбцов в записи.

Значение по умолчанию: 20480
mergeSchema

Тип: Boolean

Следует ли выводить схему по нескольким файлам и объединять схему каждого файла. По умолчанию включено для автозагрузчика при выведении схемы.

Значение по умолчанию: false
mode

Тип: String

Режим средства синтаксического анализа для обработки неправильных записей. Возможные значения: 'PERMISSIVE',
'DROPMALFORMED' и 'FAILFAST'.

Значение по умолчанию: PERMISSIVE
multiLine

Тип: Boolean

Занимает ли запись JSON несколько строк.

Значение по умолчанию: false
nanValue

Тип: String

Строковое представление значения, не являющегося числовым, при синтаксическом анализе столбцов FloatType и DoubleType.

Значение по умолчанию: "NaN"
negativeInf

Тип: String

Строковое представление отрицательной бесконечности при синтаксическом анализе столбцов FloatType или DoubleType.

Значение по умолчанию: "-Inf"
nullValue

Тип: String

Строковое представление значения NULL.

Значение по умолчанию: ""
parserCaseSensitive (не рекомендуется)

Тип: Boolean

Следует при чтении файлов ли выравнивать столбцы, объявленные в заголовке с учетом регистра в схеме. Это значение равно true по умолчанию для Автозагрузчика. Столбцы, отличающиеся регистром, будут доставляться в столбец rescuedDataColumn, если он включен. Вместо этого параметра рекомендуется использовать readerCaseSensitive.

Значение по умолчанию: false
positiveInf

Тип: String

Строковое представление положительной бесконечности при синтаксическом анализе столбцов FloatType или DoubleType.

Значение по умолчанию: "Inf"
preferDate

Тип: Boolean

Пытается вывести строки как даты вместо метки времени, когда это возможно. Кроме того, необходимо использовать вывод схемы, включив inferSchema или используя ее.
cloudFiles.inferColumnTypes с автозагрузчиком.

Значение по умолчанию: true
quote

Тип: Char

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

Значение по умолчанию: "
readerCaseSensitive

Тип: Boolean

Указывает поведение учета регистра при включении rescuedDataColumn. Если значение равно true, столбцы данных, имена которых отличаются по регистру от схемы, восстанавливаются; в противном случае данные считываются без учета регистра.

Значение по умолчанию: true
rescuedDataColumn

Тип: String

Следует ли собирать все данные, которые не могут быть проанализированы из-за несоответствия типов данных или несоответствия схем (включая регистр столбцов), в отдельный столбец. Этот столбец включен по умолчанию при использовании Автозагрузчика. Дополнительные сведения см. в статье "Что такое столбец спасенных данных?".

Значение по умолчанию: нет
sep или delimiter

Тип: String

Разделительная строка между столбцами.

Значение по умолчанию: ","
skipRows

Тип: Int

Количество строк с начала CSV-файла, которые следует игнорировать (включая комментарии и пустые строки). Если значение header равно true, заголовок будет первой строкой, которая не будет пропущена и раскомментирована.

Значение по умолчанию: 0
timestampFormat

Тип: String

Формат для синтаксического анализа строк меток времени.

Значение по умолчанию: yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]
timeZone

Тип: String

Объект java.time.ZoneId, используемый при анализе меток времени и дат.

Значение по умолчанию: нет
unescapedQuoteHandling

Тип: String

Стратегия обработки неэкранированных кавычек. Разрешенные варианты:

* STOP_AT_CLOSING_QUOTE: если во входных данных найдены неэкранированные кавычки, накапливайте символ кавычки и продолжайте анализ значения в виде заключенного в кавычки значения, пока не будет найдена закрывающая кавычка.
* BACK_TO_DELIMITER: если во входных данных обнаружены неэкранированные кавычки, рассматривать значение как значение без кавычек. Это позволит средству синтаксического анализа накапливать все символы текущего анализируемого значения до тех пор, пока не будет найден разделитель, определенный в sep. Если в значении разделитель обнаружен не будет, то средство синтаксического анализа продолжит накапливать символы из входных данных до тех пор, пока не будет найден разделитель или конец строки.
* STOP_AT_DELIMITER: если во входных данных обнаружены неэкранированные кавычки, рассматривать значение как значение без кавычек. Это позволит средству синтаксического анализа накапливать все символы до тех пор, пока во входных данных не будет найден разделитель, определенный в sep, или символ конца строки.
* SKIP_VALUE: если во входных данных обнаружены неэкранированные кавычки, содержимое, проанализированное для данного значения, будет пропущено (до тех пор, пока не будет найден следующий разделитель), а вместо этого будут созданы значения, заданные в параметре nullValue.
* RAISE_ERROR: если во входных данных обнаружены неэкранированные кавычки
возникнет исключение TextParsingException.

Значение по умолчанию: STOP_AT_DELIMITER

XML options

Вариант Описание Область действия
rowTag Тег строки XML-файлов, которые будут рассматриваться как строка. В примере XML <books> <book><book>...<books>соответствующее значение имеет значение book. Это обязательный параметр. чтение
samplingRatio Определяет долю строк, используемых для вывода схемы. Встроенные функции XML игнорируют этот параметр. По умолчанию: 1.0. чтение
excludeAttribute Следует ли исключать атрибуты в элементах. По умолчанию: false. чтение
mode Режим работы с поврежденными записями во время синтаксического анализа.

PERMISSIVE: для поврежденных записей помещает недоформированную строку в поле, настроенное columnNameOfCorruptRecordи задает неправильно сформированные поля null. Чтобы сохранить поврежденные записи, можно задать string поле типа с именем columnNameOfCorruptRecord в определяемой пользователем схеме. Если в схеме нет поля, во время синтаксического анализа удаляются поврежденные записи. При выводе схемы средство синтаксического анализа неявно добавляет columnNameOfCorruptRecord поле в выходную схему.

DROPMALFORMED: игнорирует поврежденные записи. Этот режим не поддерживается для встроенных функций XML.

FAILFAST: создает исключение, когда средство синтаксического анализа соответствует поврежденным записям.
чтение
inferSchema Если true, пытается определить соответствующий тип для каждого результирующего столбца DataFrame. Если falseрезультирующий столбец является типом string . По умолчанию:
true. Встроенные функции XML игнорируют этот параметр.
чтение
columnNameOfCorruptRecord Позволяет переименовать новое поле, содержащее неправильно сформированную строку, созданную
PERMISSIVE режим. По умолчанию: spark.sql.columnNameOfCorruptRecord.
чтение
attributePrefix Префикс атрибутов для отличия атрибутов от элементов. Это будет префикс для имен полей. По умолчанию — _. Может быть пустым для чтения XML, но не для записи. чтение, запись
valueTag Тег, используемый для символьных данных в элементах, которые также имеют атрибуты или дочерние элементы. Пользователь может указать valueTag поле в схеме или автоматически добавляться во время вывода схемы, когда символьные данные присутствуют в элементах с другими элементами или атрибутами. По умолчанию: _VALUE чтение, запись
encoding Для чтения декодирует XML-файлы по заданному типу кодирования. Для записи задает кодировку (charset) сохраненных XML-файлов. Встроенные функции XML игнорируют этот параметр. По умолчанию: UTF-8. чтение, запись
ignoreSurroundingSpaces Определяет, следует ли пропускать окружающие пробелы из считываемых значений. По умолчанию: true. Данные символов, доступные только для пробелов, игнорируются. чтение
rowValidationXSDPath Путь к необязательному XSD-файлу, который используется для проверки XML для каждой строки по отдельности. Строки, которые не удается проверить, обрабатываются как ошибки синтаксического анализа, как описано выше. XSD не влияет на указанную схему или вывод. чтение
ignoreNamespace Если trueпрефиксы пространств имен для XML-элементов и атрибутов игнорируются. Теги <abc:author> и <def:author>, например, рассматриваются как только <author>оба. Пространства имен нельзя игнорировать в элементе rowTag , только его дочерние элементы чтения. Синтаксический анализ XML не учитывает пространство имен, даже если false. По умолчанию: false. чтение
timestampFormat Настраиваемая строка формата метки времени, которая соответствует формату шаблона datetime. Это относится к типу timestamp . По умолчанию: yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]. чтение, запись
timestampNTZFormat Строка настраиваемого формата для метки времени без часового пояса, которая соответствует формату шаблона datetime. Это относится к типу TimestampNTZType. По умолчанию:
yyyy-MM-dd'T'HH:mm:ss[.SSS]
чтение, запись
dateFormat Строка настраиваемого формата даты, которая соответствует формату шаблона datetime. Это относится к типу date. По умолчанию: yyyy-MM-dd. чтение, запись
locale Задает языковой стандарт в виде тега языка в формате IETF BCP 47. Например, locale используется при анализе дат и меток времени. По умолчанию: en-US. чтение
rootTag Корневой тег XML-файлов. Например, в <books> <book><book>...</books>, соответствующее значение имеет значение books. Можно включить базовые атрибуты, указав такое books foo="bar"значение. По умолчанию: ROWS. запись
declaration Содержимое объявления XML для записи в начале каждого выходного XML-файла до rootTag. Например, значение foo причин <?xml foo?> записи. Задайте для подавления пустую строку. По умолчанию: version="1.0"
encoding="UTF-8" standalone="yes".
запись
arrayElementName Имя XML-элемента, который заключает каждый элемент столбца с значением массива при записи. По умолчанию: item. запись
nullValue Задает строковое представление значения NULL. Значение по умолчанию: строка null. При этом nullсредство синтаксического анализа не записывает атрибуты и элементы для полей. чтение, запись
compression Код сжатия, используемый при сохранении в файл. Это может быть одно из известных имен без учета регистра (none, , bzip2, gziplz4и snappy
deflate). Встроенные функции XML игнорируют этот параметр. По умолчанию: none.
запись
validateName Если значение true, вызывает ошибку при проверке имени XML-элемента. Например, имена полей SQL могут иметь пробелы, но имена XML-элементов не могут. По умолчанию:
true.
запись
readerCaseSensitive Указывает поведение конфиденциальности регистра при включенном параметре rescuedDataColumn. Если значение равно true, столбцы данных, имена которых отличаются по регистру от схемы, восстанавливаются; в противном случае данные считываются без учета регистра. По умолчанию: true. чтение
rescuedDataColumn Следует ли собирать все данные, которые нельзя проанализировать из-за несоответствия типов данных и несоответствия схемы (включая регистр столбцов) отдельному столбцу. Этот столбец включен по умолчанию при использовании Автозагрузчика. Дополнительные сведения см. в разделе "Что такое спасенных столбцов данных?". Значение по умолчанию: нет. чтение

PARQUET options

Вариант
datetimeRebaseMode

Тип: String

Управляет преобразованием значений DATE и TIMESTAMP между юлианским и григорианским календарями. Допустимые значения: EXCEPTION, LEGACYи
CORRECTED.

Значение по умолчанию: LEGACY
int96RebaseMode

Тип: String

Управляет преобразованием значений временной метки INT96 между юлианским и григорианским календарями. Допустимые значения: EXCEPTION, LEGACYи
CORRECTED.

Значение по умолчанию: LEGACY
mergeSchema

Тип: Boolean

Следует ли выводить схему по нескольким файлам и объединять схему каждого файла.

Значение по умолчанию: false
readerCaseSensitive

Тип: Boolean

Указывает поведение учета регистра при включении rescuedDataColumn. Если значение равно true, столбцы данных, имена которых отличаются по регистру от схемы, восстанавливаются; в противном случае данные считываются без учета регистра.

Значение по умолчанию: true
rescuedDataColumn

Тип: String

Следует ли собирать все данные, которые не могут быть проанализированы из-за несоответствия типов данных или несоответствия схем (включая регистр столбцов), в отдельный столбец. Этот столбец включен по умолчанию при использовании Автозагрузчика. Дополнительные сведения см. в статье "Что такое столбец спасенных данных?".

Значение по умолчанию: нет

AVRO options

Вариант
avroSchema

Тип: String

Необязательная схема, предоставляемая пользователем в формате Avro. При чтении Avro для этого параметра можно задать развитую схему, которая совместима со схемой Avro, но отличается от нее. Схема десериализации будет соответствовать развитой схеме. Например, если задать развитую схему, содержащую один дополнительный столбец со значением по умолчанию, то результат чтения будет содержать новый столбец.

Значение по умолчанию: нет
datetimeRebaseMode

Тип: String

Управляет преобразованием значений DATE и TIMESTAMP между юлианским и григорианским календарями. Допустимые значения: EXCEPTION, LEGACYи
CORRECTED.

Значение по умолчанию: LEGACY
mergeSchema

Тип: Boolean

Следует ли выводить схему по нескольким файлам и объединять схему каждого файла.
mergeSchema для Avro не ослабляет типы данных.

Значение по умолчанию: false
readerCaseSensitive

Тип: Boolean

Указывает поведение учета регистра при включении rescuedDataColumn. Если значение равно true, столбцы данных, имена которых отличаются по регистру от схемы, восстанавливаются; в противном случае данные считываются без учета регистра.

Значение по умолчанию: true
rescuedDataColumn

Тип: String

Следует ли собирать все данные, которые не могут быть проанализированы из-за несоответствия типов данных или несоответствия схем (включая регистр столбцов), в отдельный столбец. Этот столбец включен по умолчанию при использовании Автозагрузчика. Дополнительные сведения см. в статье "Что такое столбец спасенных данных?".

Значение по умолчанию: нет

BINARYFILE options

Двоичные файлы не имеют дополнительных параметров конфигурации.

TEXT options

Вариант
encoding

Тип: String

Имя кодировки текстовых файлов. Список вариантов см. в java.nio.charset.Charset.

Значение по умолчанию: UTF-8
lineSep

Тип: String

Строка между двумя последовательными текстовыми записями.

Значение по умолчанию None (Нет) охватывает \r, \r\n и \n.
wholeText

Тип: Boolean

Следует ли считывать файл как одну запись.

Значение по умолчанию: false

ORC options

Вариант
mergeSchema

Тип: Boolean

Следует ли выводить схему по нескольким файлам и объединять схему каждого файла.

Значение по умолчанию: false