Referencia de opciones de la API de Spark

En esta página se enumeran las opciones de entrada y salida disponibles para las API de Spark que leen y escriben datos.

Opciones de DataFrameReader

Use estas opciones con DataFrameReader.option(), DataFrameReader.options(), read_files, COPY INTO y Auto Loader para controlar cómo Azure Databricks lee los archivos de datos.

Example

En el ejemplo siguiente se establece multiLine en True para leer archivos JSON:

Python
df = spark.read.format("json").option("multiLine", True).load("/path/to/data")
Scala
val df = spark.read.format("json").option("multiLine", "true").load("/path/to/data")
SQL
SELECT * FROM read_files("/path/to/data", format => "json", multiLine => true)

Común

Las siguientes opciones se aplican a todos los formatos de archivo.

Clave Predeterminado Valores válidos Descripción
ignoreCorruptFiles false true, false Si se deben omitir los archivos dañados. Si el valor es true, los trabajos de Spark seguirán ejecutándose cuando haya archivos dañados y se devolverá el contenido leído. Para COPY INTO, puede observar archivos dañados omitidos como numSkippedCorruptFiles en la operationMetrics columna del historial de Delta Lake. Disponible en Databricks Runtime 11.3 LTS y versiones posteriores.
ignoreMissingFiles false para Auto Loader, true para COPY INTO (heredado) true, false Si se deben omitir los archivos que faltan. Si es true, los trabajos de Spark continúan ejecutándose al encontrar archivos que faltan y se sigue devolviendo el contenido. Disponible en Databricks Runtime 11.3 LTS y versiones posteriores.
modifiedAfter None Cadena de marca de tiempo Marca de tiempo opcional como filtro para ingerir solo archivos que tengan una marca de tiempo de modificación después de la marca de tiempo especificada.
modifiedBefore None Cadena de marca de tiempo Marca de tiempo opcional como filtro para ingerir solo archivos que tengan una marca de tiempo de modificación antes de la marca de tiempo especificada.
pathGlobFilter o fileNamePattern None Una cadena de patrón global Un patrón global potencial para elegir archivos. Equivalente a PATTERN en COPY INTO (heredado). fileNamePattern se puede usar en read_files.
recursiveFileLookup false true, false Cuando true, esta opción busca en directorios anidados incluso si sus nombres no siguen un esquema de nomenclatura de particiones como date=2019-07-01.

Avro

Las siguientes opciones se aplican al leer archivos Avro.

Clave Predeterminado Valores válidos Descripción
avroSchema None Una cadena de esquema avro Esquema opcional especificado por un usuario en formato Avro. Al leer Avro, esta opción se puede establecer en un esquema evolucionado compatible pero diferente del esquema avro real. El esquema de deserialización es coherente con el esquema evolucionado. Por ejemplo, si establece un esquema evolucionado que contiene una columna adicional con un valor predeterminado, el resultado de lectura también contiene la nueva columna.
avroSchemaEvolutionMode none none, restart Cómo controlar la evolución del esquema al usar un registro de esquemas. none omite los cambios de esquema y continúa el trabajo. restart genera un UnknownFieldException cuando se detectan cambios de esquema y requiere un reinicio del trabajo.
datetimeRebaseMode LEGACY EXCEPTION, , LEGACY, CORRECTED Controla el cambio de base de los valores de fecha y marca de tiempo entre el calendario juliano y gregoriano proléptico.
enableStableIdentifiersForUnionType false true, false Si se usan nombres de campo estables para los tipos de Unión avro. Cuando está habilitado, los nombres de campo de tipo de unión se derivan de sus nombres de tipo en minúsculas (por ejemplo, member_int, member_string). Produce una excepción si dos nombres de tipo son idénticos después de la reducción.
mergeSchema false true, false Si se debe inferir el esquema en varios archivos y combinar el esquema de cada archivo. mergeSchema para Avro no flexibiliza los tipos de datos.
mode FAILFAST FAILFAST, , PERMISSIVE, DROPMALFORMED Modo analizador para controlar registros dañados. FAILFAST genera una excepción. PERMISSIVE establece los campos con formato incorrecto en NULL. DROPMALFORMED quita silenciosamente los registros incorrectos.
readerCaseSensitive true true, false Especifica el comportamiento de distinción entre mayúsculas y minúsculas cuando rescuedDataColumn está habilitado. Si es true, rescate las columnas de datos cuyos nombres difieren entre mayúsculas y minúsculas del esquema. Cuando es false, lea los datos de una manera que no distingue mayúsculas de minúsculas.
recursiveFieldMaxDepth None 0 a 15 Profundidad máxima de recursividad para campos Recursivos avro. Establezca en 1 para truncar todos los campos recursivos, 2 para permitir un nivel de recursión, etc. hasta 15. Cuando no se establece o 0, no se permiten campos recursivos.
rescuedDataColumn None Cadena de nombre de columna Si se deben recopilar todos los datos que no se puedan analizar debido a un desajuste de tipos de datos y un desajuste de esquema (incluida la distinción entre mayúsculas y minúsculas en las columnas) en una columna independiente. Esta columna se incluye de forma predeterminada cuando se usa Auto Loader.
COPY INTO (heredado) no admite la columna de datos rescatada porque no se puede establecer manualmente el esquema mediante COPY INTO. Databricks recomienda usar Auto Loader para la mayoría de los escenarios de ingesta.
Para obtener más información, consulte ¿Qué es la columna de datos rescatados?.
stableIdentifierPrefixForUnionType member_ Cualquier cadena Prefijo que se va a usar para nombres de campo de tipo de unión estables cuando enableStableIdentifiersForUnionType=true.

CSV

Las siguientes opciones se aplican al leer archivos CSV.

Clave Predeterminado Valores válidos Descripción
badRecordsPath None Cadena de ruta de acceso La ruta para almacenar los archivos para registrar la información sobre los registros CSV erróneos.
charToEscapeQuoteEscaping \0 Un solo carácter El carácter utilizado para escapar de las comillas. Por ejemplo, para el registro siguiente: [ " a\\", b ]:
  • Si el carácter que se va a escapar '\' está indefinido, no se procesará el registro. El analizador leerá caracteres: [a],[\],["],[,],[ ],[b] y producirá un error porque no encuentra una comilla de cierre.
  • Si el carácter de escape de '\' se define como '\', el registro se leerá con 2 valores: [a\] y [b].
columnNameOfCorruptRecord _corrupt_record Cadena de nombre de columna Compatible con el Cargador automático. No se admite para COPY INTO (heredado)
Columna para almacenar registros mal formados que no se pueden interpretar. Si el mode para el análisis se configura como DROPMALFORMED, esta columna estará vacía.
comment \0 Un solo carácter Define el carácter que representa un comentario de línea cuando se encuentra al principio de una línea de texto. Use '\0' para deshabilitar la omisión de comentarios.
dateFormat yyyy-MM-dd Cadena de formato de fecha Formato para analizar las cadenas de fecha.
emptyValue Cadena vacía Cualquier cadena Representación de cadena de un valor vacío.
enableDateTimeParsingFallback false true, false Si se debe revertir al comportamiento de análisis de fecha y marca de tiempo heredados cuando no se puede analizar un valor con el formato especificado. Cuando false, los errores de análisis generan un error o generan valores NULL en función de mode.
encoding o charset UTF-8 Un java.nio.charset.Charset nombre Nombre de la codificación de los archivos CSV. Consulte java.nio.charset.Charset para la lista de opciones. UTF-16 y UTF-32 no se pueden usar cuando multiline es true.
enforceSchema true true, false Si se aplica forzosamente el esquema especificado o inferido a los archivos CSV. Si la opción está habilitada, se omiten los encabezados de los archivos CSV. Esta opción se omite de forma predeterminada al usar Auto Loader para rescatar datos y permitir la evolución del esquema.
escape \ Un solo carácter Carácter de escape que se usará al analizar los datos.
extension csv Una cadena de extensión de archivo Extensión de nombre de archivo esperada para lecturas. Los archivos sin esta extensión se filtran.
failOnUnknownFields false true, false Si se produce un error cuando el registro CSV contiene columnas que no están presentes en el esquema. Cuando false, las columnas no reconocidas se quitan o se rescatan silenciosamente en función de rescuedDataColumn.
failOnWidenedFields false true, false Si se produce un error cuando no se puede analizar un valor de campo como el tipo de esquema declarado sin ampliar. Cuando false, los valores de ancho de tipo se rescatarán silenciosamente en función de rescuedDataColumn. La configuración failOnUnknownFields=true puede enmascarar los efectos de esta opción.
header false true, false Si los archivos CSV contienen encabezado. Auto Loader supone que los archivos tienen encabezados al inferir el esquema.
ignoreLeadingWhiteSpace false true, false Si se omiten los espacios en blanco iniciales en los valores analizados.
ignoreTrailingWhiteSpace false true, false Si se omiten los espacios en blanco finales en los valores analizados.
inferSchema false true, false Decidir si inferir los tipos de datos de los registros CSV analizados o bien suponer que todas las columnas son de StringType. Requiere un paso adicional sobre los datos si se establece en true. Para el Cargador automático, use cloudFiles.inferColumnTypes en su lugar.
inputBufferSize 1048576 (1 MB) Enteros positivos Tamaño del búfer en bytes para el analizador csv. Resulta útil para optimizar el uso de memoria al analizar archivos CSV grandes.
lineSep Ninguno, que cubre \r, \r\ny \n Una cadena Cadena entre dos registros CSV consecutivos.
locale US Un java.util.Locale identificador Un Java configuración regional identificada que afecta a la fecha, la marca de tiempo y el análisis decimal predeterminados dentro del CSV.
maxCharsPerColumn -1 Enteros positivos o -1 para ilimitados Máximo de caracteres esperados de un valor que se analizará. Se puede usar para evitar errores en la memoria. El valor predeterminado es -1, que significa ilimitado.
maxColumns 20480 Enteros positivos Límite máximo de columnas que puede tener un registro.
mergeSchema false true, false Si se debe inferir el esquema en varios archivos y combinar el esquema de cada archivo. Habilitado de forma predeterminada para Auto Loader al inferir el esquema.
mode PERMISSIVE PERMISSIVE, , DROPMALFORMED, FAILFAST Modo de analizador para el control de registros con formato incorrecto.
multiLine false true, false Si los registros CSV abarcan varias líneas.
nanValue NaN Cualquier cadena Representación de cadena de un valor no numérico al analizar columnas FloatType y DoubleType.
negativeInf -Inf Cualquier cadena La representación en cadena del infinito negativo cuando se analizan las columnas FloatType o DoubleType.
nullValue Cadena vacía Cualquier cadena Representación de cadena de un valor NULL.
parserCaseSensitive (en desuso) false true, false Durante la lectura de ficheros, si se deben alinear las columnas declaradas en el encabezado con el esquema teniendo en cuenta mayúsculas y minúsculas. Esto es true de manera predeterminada para Auto Loader. Las columnas que difieren en las mayúsculas y las minúsculas se rescatarán en rescuedDataColumn si está habilitado. Esta opción ha quedado en desuso en favor de readerCaseSensitive.
positiveInf Inf Cualquier cadena Representación en forma de cadena del infinito positivo al analizar las columnas FloatType o DoubleType.
preferDate true true, false Intentar inferir cadenas como fechas en lugar de una marca de tiempo cuando sea posible. También debe usar la inferencia de esquema, ya sea habilitando inferSchema o usando cloudFiles.inferColumnTypes con autocargador.
quote " Un solo carácter Carácter utilizado para escapar valores en los que el delimitador de campo forma parte del valor.
readerCaseSensitive true true, false Especifica el comportamiento de distinción entre mayúsculas y minúsculas cuando rescuedDataColumn está habilitado. Si es true, rescate las columnas de datos cuyos nombres difieren entre mayúsculas y minúsculas del esquema. Cuando es false, lea los datos de una manera que no distingue mayúsculas de minúsculas.
rescuedDataColumn None Cadena de nombre de columna Si se deben recopilar todos los datos que no se puedan analizar debido a un desajuste de tipos de datos y un desajuste de esquema (incluida la distinción entre mayúsculas y minúsculas en las columnas) en una columna independiente. Esta columna se incluye de forma predeterminada cuando se usa Auto Loader. Para obtener más información, consulte ¿Qué es la columna de datos rescatados?.
COPY INTO (heredado) no admite la columna de datos rescatada porque no se puede establecer manualmente el esquema mediante COPY INTO. Databricks recomienda usar Auto Loader para la mayoría de los escenarios de ingesta.
sep o delimiter , Una cadena Cadena separadora de columnas.
singleVariantColumn None Cadena de nombre de columna Cuando se establece en un nombre de columna, lee todo el registro CSV en una sola VariantType columna con ese nombre en lugar de analizar cada campo en su propia columna. Se requiere header=true.
skipRows 0 Enteros positivos o 0 Número de filas desde el principio del archivo CSV que se debe omitir, incluidas las filas comentadas y vacías. Si header es verdadero, el encabezado será la primera fila no omitida ni comentada.
timeFormat HH:mm:ss Cadena de formato de hora Formato para analizar valores de TimeType columna.
timestampFormat yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] Cadena de formato de marca de tiempo Formato para analizar cadenas de marca de tiempo.
timestampNTZFormat yyyy-MM-dd'T'HH:mm:ss[.SSS] Cadena de formato de marca de tiempo El formato para analizar la marca de tiempo sin cadenas de zona horaria (TimestampNTZType).
timeZone None Una java.time.ZoneId cadena java.time.ZoneId que se usará al analizar marcas de tiempo y fechas.
unescapedQuoteHandling STOP_AT_DELIMITER STOP_AT_CLOSING_QUOTE, BACK_TO_DELIMITER, STOP_AT_DELIMITER, , SKIP_VALUE, RAISE_ERROR Estrategia para controlar las comillas sin escape. El comportamiento de cada opción permitida es el siguiente:
  • STOP_AT_CLOSING_QUOTE: si se encuentran comillas sin escape en la entrada, acumule el carácter de comilla y continúe analizando el valor como un valor entre comillas hasta que se encuentre una comilla de cierre.
  • BACK_TO_DELIMITER: si se encuentran comillas sin escape en la entrada, considere el valor como un valor sin comillas. Esto hará que el analizador acumule todos los caracteres del valor analizado actual hasta que se encuentre el delimitador definido por sep. Si no se encuentra ningún delimitador en el valor, el analizador seguirá acumulando caracteres de la entrada hasta que se encuentre un delimitador o un final de línea.
  • STOP_AT_DELIMITER: si se encuentran comillas sin escape en la entrada, considere el valor como un valor sin comillas. Esto hará que el analizador acumule todos los caracteres hasta el delimitador definido mediante sep o hasta que se encuentre un final de línea en la entrada.
  • SKIP_VALUE: si se encontrasen comillas sin escape en la entrada, se omitirá el contenido analizado para el valor dado (hasta que se encuentre el siguiente delimitador) y se producirá en su lugar el valor establecido en nullValue.
  • RAISE_ERROR: si se encuentran comillas sin escape en la entrada, se producirá una TextParsingException excepción .

Excel

Las siguientes opciones se aplican al leer archivos Excel.

Clave Predeterminado Valores válidos Descripción
dataAddress None Un intervalo de celdas o una cadena de nombre de hoja Intervalo de celdas que se va a leer en Excel sintaxis. Si se omite, lee todas las celdas válidas de la primera hoja. Use SheetName!C5:H10 para leer un intervalo de una hoja con nombre, C5:H10 para leer un intervalo de la primera hoja o SheetName para leer todos los datos de una hoja específica.
headerRows 0 0, 1 Número de filas iniciales que se van a usar como encabezados de nombre de columna. Cuando dataAddress se especifica, esto se aplica dentro del intervalo de celdas. Cuando 0, los nombres de columna se generan automáticamente como _c1, _c2, , _c3, etc.
ignoreMissingSheet false true, false Si se omiten silenciosamente los archivos que no contienen la hoja especificada por dataAddress. Cuando falsees , se produce un error si falta un archivo en la hoja solicitada. Solo se aplica cuando se especifica un nombre de hoja en dataAddress.
includePhoneticRuns false true, false Si se deben incluir anotaciones fonéticas (como pinyin o furigana) concatenadas a valores de cadena de celda al leer archivos XLSX.
operation readSheet readSheet, listSheets Operación que se va a realizar en el libro de Excel. readSheet lee datos de una hoja. listSheets devuelve una estructura con campos sheetIndex: long y sheetName: String para cada hoja.
timestampNTZFormat yyyy-MM-dd'T'HH:mm:ss[.SSS] Cadena de formato de marca de tiempo Cadena de formato personalizado para los valores de timestamp-without-timezone almacenados como cadenas en Excel. Los formatos de fecha personalizados siguen los formatos de Patrones de fecha y hora.
dateFormat yyyy-MM-dd Cadena de formato de fecha Cadena de formato personalizado para los valores de cadena leídos como Date. Los formatos de fecha personalizados siguen los formatos de Patrones de fecha y hora.

JSON

Las siguientes opciones se aplican al leer archivos JSON.

Clave Predeterminado Valores válidos Descripción
allowBackslashEscapingAnyCharacter false true, false Si se permite que las barras diagonales invertidas sean caracteres de escape para cualquier carácter posterior. Si no está habilitado, solo se pueden escapar los caracteres que se enumeran explícitamente mediante la especificación JSON.
allowComments false true, false Si se permite el uso de comentarios de estilo en Java, C y C++ (variedades '/', '*' y '//') dentro del contenido analizado o no.
allowNonNumericNumbers true true, false Si se permite el conjunto de tokens que no son cifras (NaN) como valores de número flotante válidos.
allowNumericLeadingZeros false true, false Si se permite que los números enteros comiencen con ceros adicionales (que se pueden omitir) (por ejemplo, 000001).
allowSingleQuotes true true, false Si se permite el uso de comillas simples (apóstrofo, carácter '\') para citar cadenas (nombres y valores de cadena).
allowUnquotedControlChars false true, false Si se permite que las cadenas JSON contengan caracteres de control sin escape (caracteres ASCII con un valor inferior a 32, incluidos los de tabulación y avance de línea) o no.
allowUnquotedFieldNames false true, false Si se permite el uso de nombres de campo sin comprimido, que javaScript permite, pero no mediante la especificación JSON.
alternateVariantEncoding None Z85 Codificación que se usa para los valores Variant en el JSON de origen. Z85 Establézcalo en para descodificar valores Variant que se han codificado en Base85 en lugar de almacenarse como JSON insertado.
badRecordsPath None Cadena de ruta de acceso La ruta para almacenar archivos destinados a registrar la información sobre los registros JSON erróneos.
El uso de la badRecordsPath opción en un origen de datos basado en archivos tiene las siguientes limitaciones:
  • No es transaccional y puede dar lugar a resultados incoherentes.
  • Los errores transitorios se tratan como errores.
columnNameOfCorruptRecord _corrupt_record Cadena de nombre de columna Columna para almacenar registros mal formados que no se pueden interpretar. Si el mode para el análisis se configura como DROPMALFORMED, esta columna estará vacía.
dateFormat yyyy-MM-dd Cadena de formato de fecha Formato para analizar las cadenas de fecha.
dropFieldIfAllNull false true, false Si se deben ignorar las columnas con todos los valores NULL o las matrices y estructuras vacías durante la inferencia del esquema.
encoding o charset UTF-8 Un java.nio.charset.Charset nombre Nombre de la codificación de los archivos JSON. Consulte java.nio.charset.Charset para la lista de opciones. No se puede usar UTF-16 y UTF-32 cuando multiline es true.
inferTimestamp false true, false Si se deben probar y deducir cadenas de marca de tiempo como TimestampType. Cuando se establece trueen , la inferencia de esquema puede tardar notablemente más tiempo. Debe habilitar cloudFiles.inferColumnTypes para usar con Auto Loader.
lineSep Ninguno, que cubre \r, \r\ny \n Una cadena Una cadena que aparece entre dos registros JSON consecutivos.
locale US Un java.util.Locale identificador Un Java identificador de configuración regional que afecta a la fecha, la marca de tiempo y el análisis decimal predeterminados dentro del JSON.
maxNestingDepth 500 Enteros positivos Profundidad de anidamiento máxima permitida para objetos y matrices JSON. Aumente este valor para documentos profundamente anidados.
maxNumLen 1000 Enteros positivos Longitud máxima de los tokens de número en la entrada JSON. Aumente este valor para JSON con literales numéricos grandes.
maxStringLen Ilimitado Enteros positivos Longitud máxima de valores de cadena en la entrada JSON. Establézcalo para limitar el uso de memoria al analizar JSON con cadenas grandes.
mode PERMISSIVE PERMISSIVE, , DROPMALFORMED, FAILFAST Modo de analizador para el control de registros con formato incorrecto.
multiLine false true, false Si los registros JSON abarcan varias líneas.
prefersDecimal false true, false Intentos para inferir cadenas como DecimalType en lugar de tipo float o double cuando sea posible. También debe usar la inferencia de esquema, ya sea habilitando inferSchema o usando cloudFiles.inferColumnTypes con autocargador.
primitivesAsString false true, false Si se deben inferir tipos primitivos como números y booleanos como StringType.
readerCaseSensitive true true, false Especifica el comportamiento de distinción entre mayúsculas y minúsculas cuando rescuedDataColumn está habilitado. Si es true, rescate las columnas de datos cuyos nombres difieren entre mayúsculas y minúsculas del esquema. Cuando es false, lea los datos de una manera que no distingue mayúsculas de minúsculas. Disponible en Databricks Runtime 13.3 y versiones posteriores.
rescuedDataColumn None Cadena de nombre de columna Si se van a recopilar todos los datos que no se pueden analizar debido a un error de coincidencia de tipo de datos o a un error de coincidencia de esquema (incluido el uso de mayúsculas y minúsculas de columna) en una columna independiente. Esta columna se incluye de forma predeterminada cuando se usa Auto Loader. Para obtener más información, consulte ¿Cuál es la columna de datos rescatados?.
COPY INTO (heredado) no admite la columna de datos rescatada porque no se puede establecer manualmente el esquema mediante COPY INTO. Databricks recomienda usar Auto Loader para la mayoría de los escenarios de ingesta.
singleVariantColumn None Cadena de nombre de columna Si se debe ingerir todo el documento JSON, analizado en una sola columna Variant con la cadena especificada como nombre de la columna. Si no se establece, los campos JSON se ingieren en sus propias columnas.
timestampFormat yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] Cadena de formato de marca de tiempo Formato para analizar cadenas de marca de tiempo.
timestampNTZFormat yyyy-MM-dd'T'HH:mm:ss[.SSS] Cadena de formato de marca de tiempo El formato para analizar la marca de tiempo sin cadenas de zona horaria (TimestampNTZType).
timeZone None Una java.time.ZoneId cadena java.time.ZoneId que se usará al analizar marcas de tiempo y fechas.
upgradeExceptionAsBadRecord false true, false Si se deben tratar las excepciones de actualización de tipos (por ejemplo, cuando un valor no se puede ampliar al tipo de columna declarado) como registros incorrectos en lugar de producir una excepción.

Kafka

Para obtener la lista completa de opciones de lector de Kafka, consulte Opciones de Kafka DataStreamReader. Las siguientes opciones solo se aplican a las lecturas por lotes mediante spark.read.format("kafka").

Clave Predeterminado Valores válidos Descripción
endingOffsets latest latest, o una cadena de desplazamiento JSON Dónde dejar de leer. En la cadena JSON, -1 es el desplazamiento más reciente. -2, que es el desplazamiento más antiguo, no se permite como desplazamiento final. Se trata de una cadena de desplazamiento JSON de ejemplo: {"topicA":{"0":50,"1":-1}}.
endingOffsetsByTimestamp None Cadena de marca de tiempo JSON Desplazamientos finales por partición especificados como marcas de tiempo en milisegundos. Por ejemplo: {"topicA":{"0":2000,"1":3000}}.
endingTimestamp None Enteros positivos o 0 Marca de tiempo de finalización global en milisegundos aplicados a todas las particiones.

ORC

Las siguientes opciones se aplican al leer archivos ORC.

Clave Predeterminado Valores válidos Descripción
mergeSchema false true, false Si se debe inferir el esquema en varios archivos y combinar el esquema de cada archivo.

Parquet

Las siguientes opciones se aplican al leer archivos Parquet.

Clave Predeterminado Valores válidos Descripción
datetimeRebaseMode LEGACY EXCEPTION, , LEGACY, CORRECTED Controla el cambio de base de los valores de fecha y marca de tiempo entre el calendario juliano y gregoriano proléptico.
int96RebaseMode LEGACY EXCEPTION, , LEGACY, CORRECTED Controla el cambio de base de los valores de marca de tiempo INT96 entre el calendario juliano y el gregoriano proléptico.
mergeSchema false true, false Si se debe inferir el esquema en varios archivos y combinar el esquema de cada archivo.
readerCaseSensitive true true, false Especifica el comportamiento de distinción entre mayúsculas y minúsculas cuando rescuedDataColumn está habilitado. Si es true, rescate las columnas de datos cuyos nombres difieren entre mayúsculas y minúsculas del esquema. Cuando es false, lea los datos de una manera que no distingue mayúsculas de minúsculas.
rescuedDataColumn None Cadena de nombre de columna Si se deben recopilar todos los datos que no se puedan analizar debido a un desajuste de tipos de datos y un desajuste de esquema (incluida la distinción entre mayúsculas y minúsculas en las columnas) en una columna independiente. Esta columna se incluye de forma predeterminada cuando se usa Auto Loader. Para obtener más información, consulte ¿Qué es la columna de datos rescatados?.
COPY INTO (heredado) no admite la columna de datos rescatada porque no se puede establecer manualmente el esquema mediante COPY INTO. Databricks recomienda usar Auto Loader para la mayoría de los escenarios de ingesta.

Almacén de estado

Use estas opciones con spark.read.format("statestore") o la read_statestore función con valores de tabla para leer datos de estado de Structured Streaming. Consulte Leer información de estado de Structured Streaming.

Clave Predeterminado Valores válidos Descripción
batchId Identificador de lote más reciente Enteros positivos o 0 Lote de destino desde el que se va a leer. Use para consultar un estado anterior de la consulta. El lote debe ser confirmado, pero aún no debe depurarse.
operatorId 0 Enteros positivos o 0 Operador de destino del que se va a leer. Use cuando la consulta tenga varios operadores con estado.
storeName DEFAULT Cualquier cadena Nombre del almacén de estado de destino del que se va a leer. Use cuando el operador con estado tenga varias instancias de almacén de estado. Debe especificar storeName o joinSide para una combinación stream-stream, pero no para ambas.
joinSide None left, right Lado de destino desde el que se va a leer una combinación de flujo de flujo. Debe especificar storeName o joinSide para una combinación stream-stream, pero no para ambas.
snapshotStartBatchId None Enteros positivos o 0 Identificador de lote de la instantánea que se va a usar como punto de partida al leer el estado. El lector vuelve a generar el estado reproduciendo los cambios de esta instantánea hasta batchId. Resulta útil cuando una instantánea está dañada. Debe especificarse junto con snapshotPartitionId. No se puede usar con readChangeFeed. Admite el almacén de estado respaldado por HDFS y el almacén de estado de RocksDB con puntos de comprobación del registro de cambios habilitados. Disponible en Databricks Runtime 15.4 LTS y versiones posteriores.
snapshotPartitionId None Enteros positivos o 0 Si se especifica, la consulta solo lee esta partición. Debe especificarse junto con snapshotStartBatchId. No se puede usar con readChangeFeed. Disponible en Databricks Runtime 15.4 LTS y versiones posteriores.
readChangeFeed false true, false Cuando true, devuelve los cambios de estado en un intervalo especificado de lotes entre changeStartBatchId y changeEndBatchId. Se requiere changeStartBatchId. No se puede usar con joinSide, batchId, snapshotStartBatchIdo snapshotPartitionId. Disponible en Databricks Runtime 16.4 LTS y versiones posteriores.
Para obtener más información, consulte Read Structured Streaming state changes (Leer cambios de estado de Structured Streaming).
changeStartBatchId None Enteros positivos o 0 Identificador de lote inicial del intervalo de fuente de cambios. Obligatorio cuando readChangeFeed es true. Solo se aplica cuando readChangeFeed se establece en true. Disponible en Databricks Runtime 16.4 LTS y versiones posteriores.
changeEndBatchId Identificador de lote más reciente Enteros positivos o 0 Identificador del lote final para el intervalo de fuente de cambios. Debe ser mayor o igual que changeStartBatchId. Solo se aplica cuando readChangeFeed se establece en true. Disponible en Databricks Runtime 16.4 LTS y versiones posteriores.
stateVarName None Cualquier cadena Nombre de la variable de estado que se va a leer. El nombre de la variable de estado es el nombre único de cada variable dentro de la init función de un StatefulProcessor utilizado por el transformWithState operador . Obligatorio cuando se usa el transformWithState operador . Disponible en Databricks Runtime 16.4 LTS y versiones posteriores.
readRegisteredTimers false true, false Cuando true, lee los temporizadores registrados utilizados por el transformWithState operador . Solo se aplica al transformWithState operador . Disponible en Databricks Runtime 16.4 LTS y versiones posteriores.
flattenCollectionTypes true true, false Cuando true, aplana los registros devueltos para las variables de estado de asignación y lista. Cuando false, devuelve registros como Spark SQL Array o Map. Solo se aplica al transformWithState operador . Disponible en Databricks Runtime 16.4 LTS y versiones posteriores.

Texto

Las siguientes opciones se aplican al leer archivos de texto.

Clave Predeterminado Valores válidos Descripción
encoding UTF-8 Un java.nio.charset.Charset nombre Nombre de la codificación del separador de líneas de archivo TEXT. El contenido del archivo no se ve afectado por esta opción y se lee as-is.
lineSep Ninguno, que cubre \r, \r\n y \n Una cadena Cadena entre dos registros de TEXT consecutivos.
wholeText false true, false Si se debe leer un archivo como único registro.

XML

Las siguientes opciones se aplican al leer archivos XML.

Clave Predeterminado Valores válidos Descripción
rowTag None Cualquier cadena Etiqueta de fila de los archivos XML que se van a tratar como una fila. En el XML <book> <page><page>...<book> de ejemplo, el valor adecuado es page. Esta es una opción necesaria.
samplingRatio 1.0 0.0 a 1.0 Define una fracción de filas usadas para la inferencia de esquema. Las funciones integradas XML omiten esta opción.
excludeAttribute false true, false Si se excluyen los atributos en los elementos.
mode None PERMISSIVE, , DROPMALFORMED, FAILFAST Modo para tratar los registros corruptos durante el análisis sintáctico.
  • PERMISSIVE: Para los registros corruptos, coloca la cadena malformada en un campo configurado por columnNameOfCorruptRecord, y establece los campos con formato incorrecto en null. Para conservar los registros corruptos, puede establecer un campo de tipo string denominado columnNameOfCorruptRecord en un esquema definido por el usuario. Si un esquema no tiene el campo, los registros dañados se quitan durante el análisis. Al deducir un esquema, agrega implícitamente un campo columnNameOfCorruptRecord en un esquema de salida.
  • DROPMALFORMED: omite los registros dañados. Este modo no es compatible con las funciones integradas XML.
  • FAILFAST: Lanza una excepción cuando el analizador encuentra registros dañados.
inferSchema true true, false Si true, entonces intenta deducir un tipo adecuado para cada columna del DataFrame resultante. Si false, todas las columnas resultantes son de tipo string. Las funciones integradas XML omiten esta opción.
columnNameOfCorruptRecord spark.sql.columnNameOfCorruptRecord Cadena de nombre de columna Permite cambiar el nombre del nuevo campo que contiene una cadena con formato incorrecto creada por PERMISSIVE el modo .
attributePrefix None Cualquier cadena El prefijo de los atributos para diferenciarlos de los elementos. Este será el prefijo para los nombres de campo. El valor predeterminado es _. Puede estar vacío para leer XML, pero no para escribir. También se aplica a las opciones XML dataFrameWriter.
valueTag _VALUE Cualquier cadena Etiqueta usada para los datos de caracteres dentro de los elementos que también tienen atributos o elementos secundarios. El usuario puede especificar el valueTag campo en el esquema o se agregará automáticamente durante la inferencia de esquema cuando los datos de caracteres estén presentes en elementos con otros elementos o atributos. También se aplica a las opciones XML dataFrameWriter.
encoding UTF-8 Un java.nio.charset.Charset nombre Para leer, descodifica los archivos XML mediante el tipo de codificación especificado. Para escribir, especifica la codificación (charset) de los archivos XML guardados. Las funciones integradas XML omiten esta opción. También se aplica a las opciones XML dataFrameWriter.
ignoreSurroundingSpaces true true, false Si se deben omitir los espacios en blanco que rodean los valores. Los datos de caracteres de solo espacio en blanco se omiten.
rowValidationXSDPath None Una cadena de ruta de acceso de archivo Ruta a un archivo XSD opcional que se utiliza para validar el XML de cada fila individualmente. Las filas que no se validan se tratan como errores de análisis. De lo contrario, el XSD no afecta al esquema, ya sea especificado o inferido.
ignoreNamespace false true, false Si true, se omiten los prefijos de los espacios de nombres en los elementos y atributos XML. Las etiquetas <abc:author> y <def:author>, por ejemplo, se tratan como si ambos son simplemente <author>. Los espacios de nombres no se pueden omitir en el elemento rowTag, solo sus elementos secundarios de lectura. El análisis XML no es compatible con el espacio de nombres, incluso si es false.
timestampFormat yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] Cadena de formato de marca de tiempo Cadena de formato de marca de tiempo personalizada que sigue el formato del patrón de fecha y hora . Esto se aplica al tipo timestamp. También se aplica a las opciones XML dataFrameWriter.
timestampNTZFormat yyyy-MM-dd'T'HH:mm:ss[.SSS] Cadena de formato de marca de tiempo Cadena de formato personalizado para la marca de tiempo sin zona horaria que sigue el formato de patrón datetime. Esto se aplica al tipo TimestampNTZType. También se aplica a las opciones XML dataFrameWriter.
dateFormat yyyy-MM-dd Cadena de formato de fecha Cadena de formato de fecha personalizada que sigue el patrón de fecha y hora. Esto se aplica al tipo de fecha. También se aplica a las opciones XML dataFrameWriter.
locale en-US Una etiqueta de idioma IETF BCP 47 Establece una configuración regional como etiqueta de idioma en formato IETF BCP 47. Por ejemplo, locale se usa al analizar fechas y marcas de tiempo.
nullValue cadena null Cualquier cadena Establece la representación en cadena de un valor nulo. Cuando se trata de null, el analizador no escribe atributos y elementos para los campos. También se aplica a las opciones XML dataFrameWriter.
readerCaseSensitive true true, false Especifica el comportamiento de distinción entre mayúsculas y minúsculas cuando se habilita rescuedDataColumn. Si es true, rescate las columnas de datos cuyos nombres difieren entre mayúsculas y minúsculas del esquema. Cuando es false, lea los datos de una manera que no distingue mayúsculas de minúsculas.
rescuedDataColumn None Cadena de nombre de columna Si se van a recopilar todos los datos que no se pueden analizar debido a un desajuste de tipo de datos y a un desajuste de esquema (incluido el uso de mayúsculas y minúsculas de columna) en una columna separada. Esta columna se incluye de forma predeterminada cuando se usa Auto Loader. Para obtener más información, consulte ¿Qué es la columna de datos rescatados?. COPY INTO (heredado) no admite la columna de datos rescatada porque no se puede establecer manualmente el esquema mediante COPY INTO. Databricks recomienda usar Auto Loader para la mayoría de los escenarios de ingesta.
singleVariantColumn none Cadena de nombre de columna Especifica el nombre de la columna variante única. Si se especifica esta opción para leer, analice todo el registro XML en una sola columna Variant con el valor de cadena de opción especificado como nombre de la columna. Si se especifica esta opción para escribir, escriba el valor de la columna Variant única en archivos XML. También se aplica a las opciones XML dataFrameWriter.
useLegacyXMLParser true true, false Si se va a usar el analizador XML heredado. El analizador heredado tiene una validación menos estricta para el contenido con formato incorrecto, pero es menos eficaz para la memoria. Establézcalo false en para participar en el analizador predeterminado más estricto.
wildcardColName xs_any Cadena de nombre de columna Nombre de columna usado para capturar elementos XML que coinciden con el elemento de esquema comodín (xs:any). No se puede usar junto con rescuedDataColumn.

Opciones de DataStreamReader

Use estas opciones con DataStreamReader.option() para configurar las lecturas de streaming de tablas de Delta Lake y otros orígenes basados en archivos.

Para ver las opciones de formato de archivo (JSON, CSV, Parquet y otros), consulte Opciones de DataFrameReader.

Para ver las opciones de Auto Loader (cloudFiles.*), consulte Auto Loader (Auto Loader).

Example

En el ejemplo siguiente se establece maxFilesPerTrigger en 10 para un flujo de tabla de Delta Lake:

Python
df = spark.readStream.format("delta").option("maxFilesPerTrigger", 10).load("/path/to/delta-table")
Scala
val df = spark.readStream.format("delta").option("maxFilesPerTrigger", "10").load("/path/to/delta-table")

Común

Las siguientes opciones se aplican a las tablas de Delta Lake y a otros orígenes de streaming basados en archivos.

Clave Predeterminado Valores válidos Descripción
cleanSource off off, , delete, archive Cómo controlar los archivos de origen después de que la secuencia los procese. off no realiza ninguna acción. delete elimina permanentemente el archivo de origen. archive mueve el archivo a sourceArchiveDir. Cuando se establece en archive, sourceArchiveDir también debe establecerse. No se aplica al streaming de tablas de Delta Lake.
fileNameOnly false true, false Indica si se deben identificar archivos ya procesados por nombre de archivo solo en lugar de por ruta de acceso completa. Cuando true, los archivos en rutas de acceso diferentes con el mismo nombre de archivo se tratan como el mismo archivo y no se vuelven a procesar. No se aplica al streaming de tablas de Delta Lake.
latestFirst false true, false Si se van a procesar primero los archivos modificados más recientemente dentro de cada microlote. Resulta útil cuando desea procesar los datos más recientes lo antes posible. Cuando true se establece maxFilesPerTrigger o maxBytesPerTriggermaxFileAge , se omite. No se aplica al streaming de tablas de Delta Lake.
maxBytesPerTrigger None Enteros positivos Máximo flexible para la cantidad de datos procesados para cada microproceso. Un lote puede procesar más que el límite si la unidad de entrada más pequeña la supera. Cuando se usa junto con maxFilesPerTrigger, el microproceso procesa los datos hasta que se alcanza primero cualquiera de los límites.
Para el Cargador automático, use cloudFiles.maxBytesPerTrigger en su lugar. Consulte Común.
maxCachedFiles 10000 Enteros positivos o 0 Número máximo de archivos no procesados que se almacenarán en caché para los microprocesos posteriores. Establezca en 0 para desactivar el almacenamiento en caché. Aumente este valor cuando el directorio de origen contenga muchos archivos nuevos para cada desencadenador. No se aplica al streaming de tablas de Delta Lake.
maxFileAge 7d Cadena de duración como 7d o 4h Antigüedad máxima de los archivos considerados para su procesamiento, en relación con la marca de tiempo del archivo modificado más recientemente en lugar de la hora actual del sistema. Los archivos anteriores a este umbral se omiten. Se omite cuando latestFirst es true y maxFilesPerTrigger o maxBytesPerTrigger se establece. No se aplica al streaming de tablas de Delta Lake.
maxFilesPerTrigger 1000 para Delta Lake y Auto Loader. No hay ningún valor máximo para otros orígenes basados en archivos. Enteros positivos Límite superior para el número de archivos nuevos procesados en cada microproceso. Cuando se usa junto con maxBytesPerTrigger, el microproceso procesa los datos hasta que se alcanza primero cualquiera de los límites.
Para el Cargador automático, use cloudFiles.maxFilesPerTrigger en su lugar. Consulte Común.
sourceArchiveDir None Cadena de ruta de acceso Ruta de acceso al directorio de archivo cuando cleanSource se establece en archive. Los archivos de origen se mueven a esta ruta de acceso después del procesamiento, conservando su estructura de directorios relativa. No se aplica al streaming de tablas de Delta Lake.

Cargador automático

Use estas opciones con el cloudFiles origen para configurar Auto Loader para la ingesta de streaming desde el almacenamiento en la nube. Las opciones específicas del cloudFiles origen tienen el prefijo cloudFiles para mantenerlos en un espacio de nombres independiente de otras opciones de origen de Structured Streaming .

Común

Las siguientes opciones se aplican a todas las configuraciones del cargador automático.

Clave Predeterminado Valores válidos Descripción
cloudFiles.allowOverwrites false true, false Indica si se permiten cambios en el archivo de directorio de entrada para sobrescribir los datos existentes.
Para ver advertencias de configuración, consulte ¿Procesa el cargador automático el archivo de nuevo cuando el archivo se anexa o sobrescribe?.
cloudFiles.backfillInterval None Cadena de duración como 1 day o 1 week El cargador automático puede desencadenar reposición asincrónica en un intervalo determinado. Para obtener más información, consulte Activar reposiciones regulares usando cloudFiles.backfillInterval.
No use cuando cloudFiles.useManagedFileEvents se establece en true.
cloudFiles.cleanSource OFF OFF, , DELETE, MOVE Si desea eliminar o mover automáticamente los archivos procesados desde el directorio de entrada. Cuando se establece en OFF (valor predeterminado), no se elimina ningún archivo.
Cuando se establece en DELETE, Auto Loader elimina automáticamente los archivos 30 días después de procesarlos. Para ello, El cargador automático debe tener permisos de escritura en el directorio de origen.
Cuando se establece en MOVE, Auto Loader mueve automáticamente los archivos a la ubicación especificada en cloudFiles.cleanSource.moveDestination 30 días después de procesarlos. Para ello, el Cargador Automático debe tener permisos de escritura en el directorio de origen, así como en la ubicación del movimiento.
Un archivo se considera procesado cuando tiene un valor distinto de NULL para commit_time en el resultado de la cloud_files_state función con valores de tabla. Consulte cloud_files_state función con valores de tabla. La espera adicional de 30 días después del procesamiento se puede configurar mediante cloudFiles.cleanSource.retentionDuration.
Revise las consideraciones siguientes antes de habilitar cloudFiles.cleanSource:
  • Azure Databricks no recomienda usar esta opción si hay varios flujos que consumen datos de la ubicación de origen porque el consumidor más rápido eliminará los archivos y no se ingerirá en los orígenes más lentos.
  • La habilitación de esta característica requiere que el cargador automático mantenga un estado adicional en su punto de control, lo que incurre en sobrecarga de rendimiento, pero permite una observabilidad mejorada a través de la cloud_files_state función con valores de tabla. Consulte cloud_files_state función con valores de tabla.
  • cleanSource usa la configuración actual para decidir si se debe o MOVEDELETE un archivo determinado. Por ejemplo, supongamos que la configuración era MOVE cuando el archivo se procesó originalmente, pero se cambió a DELETE cuando el archivo se convirtió en candidato para la limpieza de 30 días después. En este caso, cleanSource eliminará el archivo.
  • No se garantiza que los archivos se limpien en cuanto retentionDuration expire. Para mantener bajos costos, el cargador automático elimina los archivos simultáneamente con el procesamiento de flujos y finaliza en cuanto se completa o finaliza el procesamiento de la secuencia. Los archivos que eran candidatos para la limpieza, pero que no se pudieron limpiar durante el procesamiento de flujos se recogerán la próxima vez que se ejecute Auto Loader.

Disponible en Databricks Runtime 16.4 y versiones posteriores.
cloudFiles.cleanSource.retentionDuration 30 days Una cadena CalendarInterval , como 14 days, 2 weekso 1 month Tiempo de espera antes de que los archivos procesados se conviertan en candidatos para ser archivados con cleanSource. Debe ser mayor que 7 días para DELETE. No hay ninguna restricción mínima para MOVE.
Disponible en Databricks Runtime 16.4 y versiones posteriores.
cloudFiles.cleanSource.moveDestination None Una ruta de acceso de volumen del catálogo de Unity o almacenamiento en la nube Ruta de acceso para archivar los archivos procesados cuando cloudFiles.cleanSource se establece en MOVE. Puede ser una ruta de acceso de almacenamiento en la nube o una ruta de acceso de volumen del catálogo de Unity (por ejemplo, /Volumes/my_catalog/my_schema/my_volume/archive/).
La ubicación de movimiento debe:
  • No sea un elemento secundario del directorio de origen. Si coloca el destino de movimiento dentro del directorio de origen, los archivos archivados se ingieren de nuevo.
  • Estar en la misma ubicación externa, volumen o montaje de DBFS que el origen. No se admiten movimientos entre buckets y contenedores, lo que resulta en un error.

Auto Loader debe tener permisos de escritura en este directorio.
Disponible en Databricks Runtime 16.4 y versiones posteriores.
cloudFiles.format Ninguno (opción obligatoria) avro, binaryFile, csv, json, orc, parquet, , textxml El formato del archivo de datos en la ruta de origen. Los valores válidos son:
cloudFiles.includeExistingFiles true true, false Indica si se incluyen los archivos existentes en la ruta de acceso de entrada del procesamiento de flujos o si solo se procesan los nuevos archivos que llegan después de la configuración inicial. Esta opción solo se evalúa cuando se inicia una transmisión por primera vez. Cambiar esta opción después de reiniciar la secuencia no tiene ningún efecto.
cloudFiles.inferColumnTypes false true, false Determinar si se deben inferir los tipos de columnas exactos al aprovechar la inferencia de esquema. De manera predeterminada, las columnas se infieren como cadenas al inferir conjuntos de datos JSON y CSV. Consulte Inferencia de esquemas para obtener más detalles.
cloudFiles.maxBytesPerTrigger None Cadena de bytes como 10g Número máximo de bytes nuevos que se procesarán en cada desencadenador. Se trata de un límite suave. Si tiene archivos de 3 GB cada uno, Azure Databricks procesa 12 GB en un microproceso. Un archivo individual nunca se divide entre microprocesos; siempre se procesa en su totalidad dentro de una sola, incluso cuando su tamaño supera este límite. Cuando se usa junto con cloudFiles.maxFilesPerTrigger, Azure Databricks consume hasta el límite inferior de cloudFiles.maxFilesPerTrigger o cloudFiles.maxBytesPerTrigger, lo que se alcance primero. Esta opción no tiene ningún efecto cuando se usa con Trigger.Once() (Trigger.Once() está en desuso).
En Databricks Runtime 18.0 y versiones posteriores, esta opción está configurada dinámicamente y no es necesario establecerla manualmente.
cloudFiles.maxFileAge None Cadena de duración Cuánto dura el seguimiento de un evento de archivo con fines de desduplicación. Databricks no recomienda ajustar este parámetro a menos que ingiera datos en el orden de millones de archivos por hora. Consulte la sección seguimiento de eventos de archivo para obtener más detalles.
Un ajuste demasiado agresivo de cloudFiles.maxFileAge puede causar problemas en la calidad de los datos, como la ingesta duplicada o la falta de archivos. Por lo tanto, Databricks recomienda una configuración prudente para cloudFiles.maxFileAge, como 90 días, que es similar a lo que recomiendan soluciones comparables de ingesta de datos.
cloudFiles.maxFilesPerTrigger 1000 Enteros positivos Número máximo de archivos nuevos que se procesarán en cada desencadenador. Cuando se usa junto con cloudFiles.maxBytesPerTrigger, Azure Databricks consume hasta el límite inferior de cloudFiles.maxFilesPerTrigger o cloudFiles.maxBytesPerTrigger, lo que se alcance primero. Esta opción no tiene ningún efecto cuando se usa con Trigger.Once() (en desuso).
En Databricks Runtime 18.0 y versiones posteriores, esta opción está configurada dinámicamente y no es necesario establecerla manualmente.
cloudFiles.partitionColumns None Lista separada por comas de nombres de columna Lista separada por comas de columnas de partición de estilo de Hive que desea deducir de la estructura de directorios de los archivos. Las columnas de partición de estilo de Hive son pares clave-valor combinados mediante un signo de igualdad como <base-path>/a=x/b=1/c=y/file.format. En este ejemplo, las columnas de partición son a, by c. De forma predeterminada, estas columnas se agregan automáticamente al esquema si usa la inferencia de esquema y especifica desde el <base-path> que se van a cargar los datos. Si especifica un esquema, Auto Loader espera que estas columnas se incluyan en el esquema. Si no quiere que estas columnas formen parte del esquema, puede especificar "" para ignorarlas. Además, puede usar esta opción cuando desee que las columnas se infieran de la ruta de acceso del archivo en estructuras de directorio complejas, como en el ejemplo siguiente:
<base-path>/year=2022/week=1/file1.csv
<base-path>/year=2022/month=2/day=3/file2.csv
<base-path>/year=2022/month=2/day=4/file3.csv
Especificar cloudFiles.partitionColumns como year,month,day devuelve year=2022 para file1.csv, pero las month columnas y day son null.
month y day se analizan correctamente para file2.csv y file3.csv.
cloudFiles.schemaEvolutionMode addNewColumnscuando no se especifica un esquema; de lo contrario, none addNewColumns, none, , rescue, failOnNewColumns El modo de hacer evolucionar el esquema a medida que se detectan nuevas columnas en los datos. De manera predeterminada, las columnas se infieren como cadenas al inferir conjuntos de datos JSON. Consulte evolución del esquema para obtener más detalles.
cloudFiles.schemaHints None Una cadena de esquema Información de esquema que se especifica en Auto Loader durante la inferencia de esquema. Consulte Sugerencias de esquema para obtener más detalles.
cloudFiles.schemaLocation Ninguno (necesario para deducir el esquema) Cadena de ruta de acceso Ubicación en la que se almacenará el esquema deducido y los cambios posteriores. Consulte Inferencia de esquemas para obtener más detalles.
cloudFiles.useStrictGlobber false true, false Si se usa un patrón global estricto que coincida con el comportamiento global predeterminado de otros orígenes de archivos en Apache Spark. Consulte Patrones comunes de carga de datos para obtener más detalles. Disponible en Databricks Runtime 12.2 LTS y versiones posteriores.
cloudFiles.validateOptions true true, false Indica si se validan las opciones de Auto Loader y se devuelve un error para opciones desconocidas o incoherentes.

Lista de directorios

La siguiente opción se aplica al usar el modo de lista de directorios.

Clave Predeterminado Valores válidos Descripción
cloudFiles.useIncrementalListing (en desuso) auto en Databricks Runtime 17.2 y versiones posteriores, false en Databricks Runtime 17.3 y versiones posteriores auto, , true, false Esta característica ha quedado en desuso. Databricks recomienda usar el modo de notificación de archivos con eventos de archivo en lugar de cloudFiles.useIncrementalListing.
Indica si se debe usar la lista incremental en lugar de la lista completa en el modo de lista de directorios. De forma predeterminada, Auto Loader hace todo lo posible para detectar automáticamente si un directorio determinado es aplicable para el listado incremental. Puede usar explícitamente la lista incremental o usar la lista de directorios completa si las establece como true o false respectivamente.
Habilitar incorrectamente la lista incremental en un directorio ordenado no léxico impide que Auto Loader detecte nuevos archivos.
Funciona con Azure Data Lake Storage (abfss://), S3 (s3://) y GCS (gs://).
Disponible en Databricks Runtime 9.1 LTS y versiones superiores.

Notificación de archivo

Para obtener información sobre cómo configurar el modo de notificación de archivos, incluidos los permisos de nube necesarios, las instrucciones de configuración y los métodos de autenticación, consulte Configuración de flujos de cargador automático en modo de notificación de archivos.

Clave Predeterminado Valores válidos Descripción
cloudFiles.fetchParallelism 1 Enteros positivos Número de subprocesos que se usan al capturar mensajes del servicio de cola.
No use cuando cloudFiles.useManagedFileEvents se establece en true.
cloudFiles.pathRewrites None Una cadena de asignación JSON Solo es necesario si especifica un queueUrl objeto que recibe notificaciones de archivos de varios cubos S3 y desea usar puntos de montaje configurados para acceder a los datos de estos contenedores. Use esta opción para reescribir el prefijo de la ruta de acceso bucket/key con el punto de montaje. Solo se pueden reescribir los prefijos. Por ejemplo, para la configuración {"<databricks-mounted-bucket>/path": "dbfs:/mnt/data-warehouse"}, la ruta s3://<databricks-mounted-bucket>/path/2017/08/fileA.json se vuelve a modificar a dbfs:/mnt/data-warehouse/2017/08/fileA.json.
No use cuando cloudFiles.useManagedFileEvents se establece en true.
cloudFiles.resourceTag None Cadenas de etiqueta clave-valor Una serie de pares de etiquetas clave-valor para ayudar a asociar e identificar recursos relacionados, por ejemplo:
cloudFiles.option("cloudFiles.resourceTag.myFirstKey", "myFirstValue")
.option("cloudFiles.resourceTag.mySecondKey", "mySecondValue")
No use cuando cloudFiles.useManagedFileEvents se establece en true. En su lugar, establezca etiquetas de recursos mediante la consola del proveedor de nube.
Para más información, consulte Etiquetas de recursos del proveedor de nube.
cloudFiles.useManagedFileEvents false true, false Cuando se establece en true, Auto Loader usa el servicio de eventos de archivo para detectar archivos en la ubicación externa. Puede usar esta opción solo si la ruta de acceso de carga está en una ubicación externa donde los eventos de archivo estén habilitados. Consulte Uso del modo de notificación de archivos con eventos de archivo.
Los eventos de archivo proporcionan un rendimiento de nivel de notificaciones en la detección de archivos, ya que Auto Loader puede detectar nuevos archivos después de la última ejecución. A diferencia de la lista de directorios, este proceso no necesita enumerar todos los archivos del directorio.
Hay algunas situaciones en las que Auto Loader usa la lista de directorios aunque la opción de eventos de archivo esté habilitada:
  • Durante la carga inicial, cuando includeExistingFiles se establece en true, se realiza una lista completa de directorios para descubrir todos los archivos que estaban presentes en el directorio antes de que se inicie Auto Loader.
  • El servicio de eventos de archivos optimiza la detección de archivos almacenando en caché los archivos creados más recientemente. Si el cargador automático se ejecuta con poca frecuencia, esta caché puede expirar y el cargador automático vuelve a la lista de directorios para detectar archivos y actualizar la memoria caché. Para evitar este escenario, invoque Auto Loader al menos una vez cada siete días.

Consulte ¿Cuándo usa Auto Loader con eventos de archivo la lista de directorios? para obtener una lista completa de situaciones en las que Auto Loader usa la lista de directorios con esta opción.
Disponible en Databricks Runtime 14.3 LTS y versiones posteriores.
cloudFiles.listOnStart false true, false Cuando se establece trueen , El cargador automático realiza una lista de directorios completa cuando se inicia la secuencia, en lugar de empezar con el token de continuación en el punto de control. Use esta opción para recuperarse de errores, como CF_MANAGED_FILE_EVENTS_INVALID_CONTINUATION_TOKEN. Consulte ¿Cómo puedo recuperarme de un CF_MANAGED_FILE_EVENTS_INVALID_CONTINUATION_TOKEN error?.
cloudFiles.useNotifications false true, false Indica si se debe usar el modo de notificación de archivos para determinar cuándo hay nuevos archivos. Si es false, use el modo de lista de directorios. Consulte Comparación de los modos de detección de archivos del cargador automático.
No use cuando cloudFiles.useManagedFileEvents se establece en true.
Etiquetas de recursos del proveedor de nube

El cargador automático agrega de forma predeterminada los siguientes pares de etiquetas clave-valor:

  • vendor: Databricks
  • path: ubicación desde la que se cargan los datos. No disponible en GCP debido a las limitaciones de etiquetado.
  • checkpointLocation: la ubicación del punto de control de la secuencia. No disponible en GCP debido a las limitaciones de etiquetado.
  • streamId: identificador único global de la secuencia.

Databricks reserva estos nombres de clave y no puede sobrescribir sus valores.

Para obtener más información sobre Azure, consulte Asignar nombres a colas y metadatos y la cobertura de properties.labels en Suscripciones a eventos. El cargador automático almacena estos pares de etiquetas clave-valor en JSON como etiquetas.

Específico de la nube

Auto Loader tiene opciones para configurar la infraestructura en la nube para el modo de notificación de archivos. Para obtener instrucciones de configuración y permisos de nube necesarios, consulte Configuración de flujos de cargador automático en modo de notificación de archivos.

Azure

Debe especificar valores para todas las opciones siguientes si especifica cloudFiles.useNotifications = true y desea que Auto Loader configure los servicios de notificación automáticamente:

Clave Predeterminado Valores válidos Descripción
cloudFiles.resourceGroup None Cualquier cadena El Azure grupo de recursos en el que se crea la cuenta de almacenamiento.
cloudFiles.subscriptionId None Cualquier cadena El Azure identificador de suscripción en el que se crea el grupo de recursos.
databricks.serviceCredential None Cualquier cadena Nombre de la credencial de servicio de Databricks . Disponible en Databricks Runtime 16.1 y versiones posteriores.

Si una credencial de servicio de Databricks no está disponible, puede especificar las siguientes opciones de autenticación en su lugar:

Clave Predeterminado Valores válidos Descripción
cloudFiles.clientId None Cualquier cadena Id. de cliente o id. de aplicación de la entidad de servicio.
cloudFiles.clientSecret None Cualquier cadena El secreto de cliente de la entidad de servicio.
cloudFiles.connectionString None Una cadena de conexión Cadena de conexión de la cuenta de almacenamiento, en función de la clave de acceso de la cuenta o de la firma de acceso compartido (SAS).
cloudFiles.tenantId None Cualquier cadena Identificador de inquilino Azure en el que se crea la entidad de servicio.

Especifique la siguiente opción solo si establece cloudFiles.useNotifications = true y desea que Auto Loader use una cola existente:

Clave Predeterminado Valores válidos Descripción
cloudFiles.queueName None Cualquier cadena Nombre de la cola de Azure. Si se especifica, el origen de archivos en la nube consume directamente eventos de esta cola en lugar de configurar sus propios servicios de Azure Event Grid y Queue Storage. En ese caso, databricks.serviceCredential o cloudFiles.connectionString solo necesita permisos de lectura en la cola.

Delta Lake

Las siguientes opciones se aplican al leer desde una tabla de Delta Lake mediante spark.readStream.

Clave Predeterminado Valores válidos Descripción
allowSourceColumnDrop None Número de versión o always Establézcalo en un número de versión de la tabla Delta o always para permitir que la secuencia continúe después de quitar las columnas del esquema de la tabla de origen. Cuando se establece en un número de versión, confirma todos los cambios de esquema hasta esa versión. Se requiere schemaTrackingLocation. Consulte Renombrar y eliminar columnas con el mapeo de columnas de Delta Lake.
allowSourceColumnRename None Número de versión o always Establezca en un número de versión de la tabla Delta o always para permitir que la secuencia continúe después de que se cambie el nombre de las columnas en la tabla de origen. Cuando se establece en un número de versión, confirma todos los cambios de esquema hasta esa versión. Se requiere schemaTrackingLocation. Consulte Renombrar y eliminar columnas con el mapeo de columnas de Delta Lake.
allowSourceColumnTypeChange None Número de versión o always Establézcalo en un número de versión de la tabla Delta o always para permitir que la secuencia continúe después de cambiar los tipos de columna en la tabla de origen. Cuando se establece en un número de versión, confirma todos los cambios de esquema hasta esa versión. Se requiere schemaTrackingLocation. Consulte Ampliación de tipos.
excludeRegex None Cadena regex de Java Patrón de expresión regular. Los archivos cuyas rutas de acceso coinciden con el patrón se excluyen de la lectura de streaming. Resulta útil para filtrar archivos que no se ajustan a la convención de nomenclatura esperada.
failOnDataLoss true true, false Si se produce un error en la consulta de streaming si se han eliminado los datos de origen debido a la retención del registro (logRetentionDuration). Establézcalo en false para omitir los datos que faltan y continuar con el procesamiento. Vea Configuración de la retención de datos para las consultas de historial temporal.
ignoreChanges (en desuso) false true, false Disponible en Databricks Runtime 11.3 LTS y versiones posteriores. Vuelve a emitir archivos de datos reescritos después de operaciones de modificación como UPDATE, MERGE INTO, DELETEo OVERWRITE. Las filas sin cambios se pueden emitir junto con las nuevas filas, por lo que los consumidores de nivel inferior deben controlar los duplicados. Las eliminaciones no se propagan hacia abajo. Reemplazado por skipChangeCommits en Databricks Runtime 12.2 LTS y versiones posteriores.
ignoreDeletes (en desuso) false true, false Omite las transacciones que eliminan datos en los límites de partición (solo quita la partición completa). No controla eliminaciones, actualizaciones u otras modificaciones que no son de partición. Utilice skipChangeCommits en su lugar.
readChangeFeed o readChangeData false true, false Si se habilita la lectura de la fuente de distribución de datos de cambios para la consulta de streaming. Cuando está habilitada, la secuencia emite cambios de nivel de fila (inserciones, actualizaciones y eliminaciones) con columnas de metadatos adicionales. Consulte Uso de la fuente de datos modificados en Azure Databricks.
schemaTrackingLocation None Cadena de ruta de acceso Ruta de acceso a un directorio donde Delta Lake realiza un seguimiento de los cambios de esquema para la lectura de streaming. Se requiere cuando el streaming de tablas con asignación de columnas habilitada y mediante allowSourceColumn* opciones para controlar la evolución del esquema. Debe estar dentro checkpointLocation de de la consulta de streaming. Consulte Renombrar y eliminar columnas con el mapeo de columnas de Delta Lake.
skipChangeCommits false true, false Omite las transacciones que eliminan o modifican registros y procesos existentes solo anexan. Databricks recomienda esta opción para la mayoría de las cargas de trabajo que no usan fuentes de distribución de datos modificados. Disponible en Databricks Runtime 12.2 LTS y versiones posteriores. Consulte Omitir confirmaciones de cambios ascendentes con skipChangeCommits.
startingTimestamp Más reciente disponible Cadena de marca de tiempo, como 2019-01-01T00:00:00.000Z o una cadena de fecha, como 2019-01-01 Marca de tiempo desde la que empezar a leer. La secuencia lee todos los cambios de tabla confirmados en o después de la marca de tiempo especificada. Si la marca de tiempo precede a todas las confirmaciones de tabla disponibles, la secuencia comienza desde la confirmación disponible más antigua. No se puede usar junto con startingVersion. Se omite si el punto de control de streaming ya existe.
startingVersion Más reciente disponible Entero positivo, 0, o latest Versión de la tabla delta desde la que empezar a leer. La secuencia lee todos los cambios confirmados en o después de la versión especificada. Especifique latest para empezar solo a partir de los cambios más recientes. No se puede usar junto con startingTimestamp. Se omite si el punto de control de streaming ya existe. Consulte Trabajar con el historial de tablas.
withEventTimeOrder false true, false Divide la instantánea de tabla inicial en depósitos de tiempo de eventos para evitar que los registros se marquen incorrectamente como eventos en tiempo de ejecución y se quiten en consultas con estado con marcas de agua. No se puede cambiar después de que se haya iniciado el procesamiento inicial de instantáneas sin eliminar el punto de control. Disponible en Databricks Runtime 11.3 LTS y versiones posteriores. Consulte Procesamiento de instantáneas iniciales sin quitar datos.

Kafka

Use estas opciones con spark.readStream.format("kafka") o spark.read.format("kafka"):

Clave Predeterminado Valores válidos Descripción
assign None Una cadena JSON, como {"topicA":[0,1],"topicB":[2,4]} Particiones específicas que se van a consumir. Debe especificar exactamente una de las subscribeopciones , subscribePatterno assign .
failOnDataLoss true true, false Si se produce un error en la consulta si es posible que se hayan perdido datos, por ejemplo, debido a temas eliminados o truncamiento de desplazamiento. Establézcalo en false para omitir los datos que faltan y continuar.
Databricks calcula de forma conservadora si es posible que se hayan perdido los datos. Sin embargo, esto podría causar falsas alarmas.
fetchoffset.numretries 3 Enteros positivos o 0 Se produce un error en el número de reintentos al capturar desplazamientos de Kafka.
fetchoffset.retryintervalms 1000 Enteros positivos o 0 Intervalo en milisegundos entre reintentos de captura de desplazamiento.
groupIdPrefix spark-kafka-source (streaming), spark-kafka-relation (lote) Cualquier cadena Prefijo personalizado que se va a usar para el identificador de grupo de consumidores de Kafka generado automáticamente. Si kafka.group.id se establece explícitamente, el conector omite esta opción.
kafka.group.id None Cualquier cadena Identificador del grupo de consumidores de Kafka que se va a usar al leer. Use con precaución: las consultas que comparten el mismo identificador de grupo interfieren entre sí y pueden leer solo datos parciales. Esto puede ocurrir al ejecutar cargas de trabajo simultáneas por lotes y streaming, o al reiniciar rápidamente las consultas. Si se establece, groupIdPrefix se omite. Para minimizar los problemas, establezca la configuración session.timeout.ms del consumidor de Kafka en un valor pequeño.
includeHeaders false true, false Si se deben incluir encabezados de mensaje de Kafka como una columna en la salida.
kafkaconsumer.polltimeoutms None Enteros positivos Tiempo de espera en milisegundos para la llamada de consumidor poll() de Kafka.
kafka.bootstrap.servers None Una lista separada por comas de host:port cadenas Una lista separada por comas de direcciones host:port para agentes de Kafka. Establece la propiedad del cliente de bootstrap.servers Kafka.
Si encuentra que no hay datos de Kafka, compruebe esta lista de direcciones de agente para ver direcciones incorrectas. Si la lista de direcciones del agente es incorrecta, es posible que no haya errores. Los clientes de Kafka asumen que los agentes estarán disponibles finalmente y volverán a intentarlo para siempre cuando reciban errores de red.
maxRecordsPerPartition None Enteros positivos Número máximo de registros para cada partición de Spark. Cuando se establece, el conector divide las particiones de Kafka para que cada partición de Spark lea como máximo estos muchos registros.
También puede usar esta opción con minPartitions. Cuando se establecen ambas opciones, Spark usa cualquier opción que tenga como resultado más particiones.
minPartitions None Enteros positivos Número mínimo de particiones de Spark que se van a leer desde Kafka. Cuando se establece, el conector divide particiones grandes de Kafka para aumentar el paralelismo. Cuando no se establece, Spark crea una partición para cada partición de tema de Kafka. Resulta útil para controlar la asimetría de datos o las cargas máximas.
Esta opción reinicializa los consumidores de Kafka para cada desencadenador, lo que podría afectar al rendimiento con SSL.
startingOffsets latest (streaming), earliest (lote) earliest, latesto una cadena de desplazamiento JSON Desplazamiento desde el que comienza la consulta. En la cadena JSON, -1 es el desplazamiento más reciente. -2 es el desplazamiento más antiguo. Por ejemplo: {"topicA":{"0":23,"1":-2}}.
En el caso de las consultas de streaming, esta opción solo se aplica cuando se inicia una nueva consulta. Las consultas reanudadas siempre usan el punto de control. Durante una consulta, las nuevas particiones comienzan a leer el desplazamiento más pronto.
En el caso de las consultas por lotes, latest no se permite.
startingOffsetsByTimestamp None Cadena de marca de tiempo JSON, como {"topicA":{"0":1000,"1":2000}} Lista de desplazamientos iniciales para cada partición, especificadas como marcas de tiempo en milisegundos. Cuando no existe ningún desplazamiento para una marca de tiempo, el comportamiento de la consulta viene determinado por startingOffsetsByTimestampStrategy.
En el caso de las consultas de streaming, esta opción solo se aplica cuando se inicia una nueva consulta. Las consultas reanudadas siempre usan el punto de control. Durante una consulta, las nuevas particiones comienzan a leer el desplazamiento más pronto.
startingOffsetsByTimestampStrategy error error, latest Estrategia que se va a usar cuando no se encuentra ningún desplazamiento para una marca de tiempo especificada en startingOffsetsByTimestamp o startingTimestamp. error genera una excepción. latest usa el desplazamiento disponible más reciente.
startingTimestamp None Enteros positivos o 0 Marca de tiempo de inicio global en milisegundos que se aplica a todas las particiones. Cuando no existe ningún desplazamiento para la marca de tiempo, el comportamiento se controla mediante startingOffsetsByTimestampStrategy.
subscribe None Una lista separada por comas de nombres de tema Temas a los que suscribirse. Debe especificar exactamente una de las subscribeopciones , subscribePatterno assign .
subscribePattern None Cadena regex de Java Patrón que se usa para suscribirse a temas. Debe especificar exactamente una de las subscribeopciones , subscribePatterno assign . Por ejemplo: topic.*.

Las siguientes opciones solo se aplican a las lecturas de streaming con spark.readStream.format("kafka"):

Clave Predeterminado Valores válidos Descripción
bytesEstimateWindowLength 300s Cadenas de duración como 10m o 600s Período de tiempo usado para calcular los bytes restantes de la estimatedTotalBytesBehindLatest métrica. Consulte Recuperación de métricas de Kafka.
maxOffsetsPerTrigger None Enteros positivos Número máximo de desplazamientos que se van a procesar por intervalo de desencadenador. Los desplazamientos se distribuyen proporcionalmente entre particiones de tema.
maxTriggerDelay 15m Cadenas de duración como 10m o 600s Tiempo máximo para esperar minOffsetsPerTrigger a que se acumule antes de desencadenarse.
minOffsetsPerTrigger None Enteros positivos Número mínimo de desplazamientos que se van a acumular antes de desencadenar un microproceso. Cuando maxTriggerDelay se alcanza, el microproceso se ejecuta independientemente.

Para ver las opciones de desplazamiento que solo se aplican a las lecturas por lotes con spark.read.format("kafka"), consulte Opciones de Kafka DataFrameReader.

Autenticación

Databricks recomienda usar una credencial de servicio de Catálogo de Unity para autenticarse en los servicios de Kafka administrados por la nube (AWS MSK, Azure Event Hubs o Google Cloud Managed Kafka).

Clave Predeterminado Valores válidos Descripción
databricks.serviceCredential None Cualquier cadena Nombre de una credencial de servicio de catálogo de Unity para autenticarse en los servicios de Kafka administrados por la nube. Disponible en Databricks Runtime 16.1 y versiones posteriores.
databricks.serviceCredential.scope None Cualquier cadena Ámbito de OAuth para la credencial de servicio. Establézcalo solo cuando Azure Databricks no pueda deducir automáticamente el ámbito del servicio Kafka.

Cuando una credencial de servicio no está disponible, use las opciones de SASL/SSL (que se pasan como kafka.* propiedades). Cuando se usa una credencial de servicio, no es necesario especificar kafka.sasl.mechanism, kafka.sasl.jaas.configo kafka.security.protocol.

Clave Predeterminado Valores válidos Descripción
kafka.security.protocol None Cadena de protocolo de seguridad, como SASL_SSL, SSL, PLAINTEXT Protocolo de seguridad para la comunicación de agente.
kafka.sasl.mechanism None Una cadena de mecanismo SASL, como PLAIN, SCRAM-SHA-256, SCRAM-SHA-512, , , OAUTHBEARERAWS_MSK_IAM Mecanismo SASL.
kafka.sasl.jaas.config None Una cadena de configuración JAAS Cadena de configuración de inicio de sesión jaAS.
kafka.sasl.login.callback.handler.class None Un nombre de clase completo Nombre de clase completo de un controlador de devolución de llamada de inicio de sesión para la autenticación SASL.
kafka.sasl.client.callback.handler.class None Un nombre de clase completo Nombre de clase completo de un controlador de devolución de llamada de cliente para la autenticación SASL.
kafka.ssl.truststore.location None Una cadena de ruta de acceso de archivo Ruta de acceso al archivo de almacén de confianza SSL.
kafka.ssl.truststore.password None Cualquier cadena Contraseña del archivo de almacén de confianza SSL.
kafka.ssl.keystore.location None Una cadena de ruta de acceso de archivo Ruta de acceso al archivo de almacén de claves SSL.
kafka.ssl.keystore.password None Cualquier cadena Contraseña del archivo de almacén de claves SSL.

Para obtener instrucciones de configuración de autenticación completas, consulte Autenticación.

Pub/Sub

Use estas opciones con spark.readStream.format("pubsub") para suscribirse a Google Pub/Sub. Las opciones subscriptionId, topicIdy projectId son necesarias.

Clave Predeterminado Valores válidos Descripción
subscriptionId None Cualquier cadena Required. Id. de suscripción de Pub/Sub. El conector crea la suscripción si no existe.
topicId None Cualquier cadena Required. Identificador del tema Pub/Sub.
projectId None Cualquier cadena Required. Identificador del proyecto de Google Cloud.
numFetchPartitions Mitad del número de ejecutores disponibles en la inicialización del flujo Enteros positivos Número de tareas paralelas de Spark que capturan filas de la suscripción.
maxBytesPerTrigger None Enteros positivos Límite temporal en el número de bytes que se van a procesar por microproceso.
maxRecordsPerFetch 1000 Enteros positivos Número de filas que se van a capturar por tarea antes del procesamiento.
maxFetchPeriod 10s Cadena de duración como 1s o 1m Tiempo que cada tarea debe emplear para recuperar datos antes de procesar las filas. Azure Databricks recomienda usar el valor predeterminado.
deleteSubscriptionOnStreamStop false true, false Cuando true, la suscripción, de subscriptionId, se elimina cuando finaliza la consulta de streaming.
serviceCredential None Cualquier cadena Nombre de una credencial de servicio de Azure Databricks para autenticarse en Pub/Sub. Disponible en Databricks Runtime 16.1 y versiones posteriores.
clientEmail None Cadena de dirección de correo electrónico Dirección de correo electrónico de la cuenta de servicio de Google. Obligatorio cuando no se usa una credencial de servicio.
clientId None Cualquier cadena El Id. de cliente de la cuenta de servicio de Google. Obligatorio cuando no se usa una credencial de servicio.
privateKey None Cadena de clave privada Clave privada de la cuenta de servicio de Google. Obligatorio cuando no se usa una credencial de servicio.
privateKeyId None Cualquier cadena Identificador de clave privada de la cuenta de servicio de Google. Obligatorio cuando no se usa una credencial de servicio.

Para obtener más información sobre Pub/Sub, consulta Suscribirse a Google Pub/Sub.

Pulsar

Use estas opciones con spark.readStream.format("pulsar") para transmitir desde Apache Pulsar. Disponible en Databricks Runtime 14.1 y versiones posteriores.

Se requieren las siguientes opciones. Debe especificar exactamente una de topiclas propiedades , topicso topicsPattern.

Clave Predeterminado Valores válidos Descripción
service.url None Cadena de dirección URL del servicio Pulsar Pulsar serviceURL para el servicio Pulsar, por ejemplo pulsar://broker.example.com:6650.
topic None Cualquier cadena Un único nombre de tema que se va a consumir.
topics None Una lista separada por comas de nombres de tema Lista separada por comas de nombres de temas que se van a consumir.
topicsPattern None Cadena regex de Java Cadena de Java regex para que coincida con los nombres de tema.

También se admiten las siguientes opciones:

Clave Predeterminado Valores válidos Descripción
admin.url None Cadena de dirección URL Dirección URL HTTP del servicio de administración de Pulsar. Obligatorio cuando maxBytesPerTrigger se establece.
allowDifferentTopicSchemas false true, false Si se leen varios temas con esquemas diferentes, use esta opción para desactivar la deserialización automática del valor del tema basado en esquemas. Solo se devuelven los valores sin procesar cuando es true.
failOnDataLoss true true, false Si se produce un error en la consulta cuando se pierden los datos. Por ejemplo, la pérdida de datos puede producirse cuando los temas se eliminan o los mensajes expiran debido a la directiva de retención.
maxBytesPerTrigger None Enteros positivos Límite temporal en el número de bytes que se van a procesar por microproceso. Se requiere admin.url.
pollTimeoutMs 120000 Enteros positivos Tiempo de espera para leer mensajes de Pulsar en milisegundos.
predefinedSubscription None Cualquier cadena Nombre de suscripción predefinido usado por el conector para realizar un seguimiento del progreso de la aplicación Spark.
startingOffsets latest latest, earliesto una cadena de desplazamiento JSON Dónde empezar a leer.
subscriptionPrefix None Cualquier cadena Prefijo usado por el conector para generar una suscripción aleatoria para realizar un seguimiento del progreso de la aplicación Spark.
waitingForNonExistedTopic false true, false Si el conector espera hasta que se creen los temas deseados.

Puede especificar configuraciones adicionales de cliente, administrador y lector de Pulsar mediante los siguientes patrones de opción:

Pattern Opciones de configuración
pulsar.admin.* Configuración del administrador de Pulsar
pulsar.client.* Configuración del cliente pulsar, incluidas las opciones de autenticación, como pulsar.client.authPluginClassName y pulsar.client.authParams.
pulsar.reader.* Configuración del lector de Pulsar

Para obtener más información sobre las opciones de autenticación de cliente y administrador de Pulsar, consulte Autenticación.

Autenticación

Azure Databricks admite autenticación mediante truststore y keystore con Pulsar. Azure Databricks recomienda usar secretos para almacenar los detalles de autenticación. Consulte Administración de secretos.

Clave Predeterminado Valores válidos Descripción
pulsar.client.authPluginClassName None Un nombre de clase completo Nombre de clase completo del complemento de autenticación. Por ejemplo: org.apache.pulsar.client.impl.auth.AuthenticationTls.
pulsar.client.authParams None Una cadena de credenciales Credenciales de autenticación pasadas al complemento de autenticación como una cadena. Por ejemplo: tlsCertFile:/path/to/my-role.cert.pem,tlsKeyFile:/path/to/my-role.key-pk8.pem.
pulsar.client.useKeyStoreTls false true, false Cuando true, habilita la configuración tls basada en KeyStore en lugar de los archivos con formato PEM.
pulsar.client.tlsTrustStoreType None Cualquier cadena Formato del archivo de almacén de confianza TLS. Por ejemplo: JKS.
pulsar.client.tlsTrustStorePath None Una cadena de ruta de acceso de archivo Ruta de acceso al archivo de almacén de confianza TLS que contiene certificados de ENTIDAD de certificación de confianza. Obligatorio cuando pulsar.client.useKeyStoreTls es true.
pulsar.client.tlsTrustStorePassword None Cualquier cadena Contraseña del archivo de almacén de confianza TLS.

Si la secuencia usa un PulsarAdmin, también puede establecer las siguientes opciones:

Clave Predeterminado Valores válidos Descripción
pulsar.admin.authPluginClassName None Un nombre de clase completo Nombre de clase completo del complemento de autenticación para el cliente administrador de Pulsar.
pulsar.admin.authParams None Una cadena de credenciales Credenciales de autenticación para el complemento de autenticación de cliente de administrador de Pulsar.
pulsar.admin.useTls None true, false Si se usa TLS para la conexión de cliente de administrador de Pulsar.
pulsar.admin.tlsAllowInsecureConnection None true, false Si se permiten conexiones TLS no seguras para el cliente de administración de Pulsar.
pulsar.admin.tlsTrustCertsFilePath None Una cadena de ruta de acceso de archivo Ruta de acceso al archivo de certificado TLS de confianza para el cliente de administración de Pulsar.
pulsar.admin.useKeyStoreTls None true, false Si se usa TLS basado en KeyStore para el cliente de administración de Pulsar.
pulsar.admin.tlsTrustStoreType None Cualquier cadena Formato del almacén de confianza tls para el cliente de administración de Pulsar. Por ejemplo: JKS.
pulsar.admin.tlsTrustStorePath None Una cadena de ruta de acceso de archivo Ruta de acceso al archivo de almacén de confianza TLS para el cliente de administración de Pulsar. Obligatorio cuando pulsar.admin.useKeyStoreTls es true.
pulsar.admin.tlsTrustStorePassword None Cualquier cadena Contraseña para el almacén de confianza tls del cliente de administrador de Pulsar.

Para obtener ejemplos de autenticación, consulte Autenticación en Pulsar.

Opciones de DataFrameWriter

Use estas opciones con DataFrameWriter.option() y DataFrameWriterV2.option() para controlar cómo Azure Databricks escribe datos.

Example

En el ejemplo siguiente se establece mergeSchema en True para escribir una tabla de Delta Lake:

Python
df.write.format("delta").option("mergeSchema", True).saveAsTable("my_table")
Scala
df.write.format("delta").option("mergeSchema", "true").saveAsTable("my_table")

Avro

Las siguientes opciones se aplican al escribir archivos Avro.

Clave Predeterminado Valores válidos Descripción
avroSchema None Una cadena de esquema JSON Esquema avro completo como una cadena JSON. Use esta opción para convertir tipos de Spark SQL a tipos específicos de Avro. Se aplica a los archivos Avro de lectura y escritura.
avroSchemaUrl None Cadena de dirección URL Dirección URL que apunta a un archivo de esquema de Avro. Use en lugar de avroSchema cuando el esquema se almacene externamente. Mutuamente excluyente con avroSchema. Se aplica a los archivos Avro de lectura y escritura.
compression snappy uncompressed, deflate, snappy (default), bzip2, , xz, zstandard Códec de compresión que se va a usar al escribir. Se aplica a los archivos Avro de lectura y escritura.
recordName topLevelRecord Cualquier cadena Nombre de registro de nivel superior en el esquema avro de salida. Se aplica a los archivos Avro de lectura y escritura.
positionalFieldMatching false true, false Si se deben buscar coincidencias con las columnas entre el esquema de Spark y el esquema avro por posición de campo en lugar de por nombre. Se aplica a los archivos Avro de lectura y escritura.
recordNamespace Cadena vacía Cualquier cadena Espacio de nombres para el registro de nivel superior en el esquema avro de salida. Se aplica a los archivos Avro de lectura y escritura.

Delta Lake y Apache Iceberg

Se aplican las siguientes opciones al escribir tablas delta Lake y Apache Incremental.

Clave Predeterminado Valores válidos Descripción
clusterByAuto false true, false Si se habilita la agrupación en clústeres líquidos automáticas, donde Azure Databricks selecciona columnas de agrupación en clústeres en función de los patrones de consulta. Solo es válido con mode("overwrite"). No se puede usar con append el modo . Disponible en Databricks Runtime 16.4 y versiones posteriores. Se aplica al uso de clústeres líquidos para tablas.
mergeSchema None true, false Si se va a habilitar la evolución del esquema para la operación de escritura. Las nuevas columnas del dataframe de origen se agregan al esquema de la tabla de destino. Se aplica a los anexos por lotes y streaming. Se aplica a Actualizar esquemas de tabla con evolución del esquema.
overwriteSchema None true, false Si se va a reemplazar el esquema de tabla y la creación de particiones al sobrescribir. Requiere mode("overwrite") sin replaceWhere. No se puede usar con partitionOverwriteMode. Se aplica a Actualizar esquemas de tabla con evolución del esquema.
partitionOverwriteMode None static, dynamic Modo de sobrescritura de partición. Establézcalo dynamic en para sobrescribir solo las particiones que contienen nuevos datos, dejando sin cambios todas las demás particiones. Modo heredado, no compatible con el proceso sin servidor o Databricks SQL. Se aplica a la sobrescritura selectiva de datos con Delta Lake.
replaceOn None Una cadena de expresión booleana Expresión booleana que coincide con las filas de la tabla de destino para reemplazar por filas de la consulta de origen. Puede hacer referencia a columnas de la tabla de destino y de la consulta de origen. Las filas del destino que coinciden con una fila de origen se eliminan y reemplazan. Si el origen está vacío, no se produce ninguna eliminación. Use targetAlias para desambiguar las referencias de columna. Disponible en Databricks Runtime 17.1 y versiones posteriores. Se aplica a la sobrescritura selectiva de datos con Delta Lake.
replaceUsing None Lista separada por comas de nombres de columna Lista separada por comas de nombres de columna que se usan para buscar coincidencias entre la tabla de destino y la consulta de origen. Tanto el destino como el origen deben contener todas las columnas enumeradas. Las filas del destino que coinciden con una fila de origen en la comparación de igualdad se eliminan y reemplazan. NULL los valores se tratan como no iguales y no coinciden. Disponible en Databricks Runtime 16.3 y versiones posteriores. Se aplica a la sobrescritura selectiva de datos con Delta Lake.
replaceWhere None Cadena de expresión de predicado Expresión de predicado. Sobrescribe de forma atómica solo los registros que coinciden con el predicado. Se aplica a la sobrescritura selectiva de datos con Delta Lake.
targetAlias None Cualquier cadena Alias de cadena para la tabla de destino. Use con replaceOn o replaceWhere para desambiguar las referencias de columna cuando la condición hace referencia a columnas de la tabla de destino y de la consulta de origen. Se aplica a la sobrescritura selectiva de datos con Delta Lake.
txnAppId None Cualquier cadena Cadena única que identifica la aplicación para escrituras idempotentes en foreachBatch operaciones. Use junto con txnVersion para garantizar escrituras exactamente una vez en varias tablas de Delta Lake. Se aplica a Uso foreachBatch para escrituras de tabla idempotentes.
txnVersion None Entero que aumenta de forma monotónica Número que aumenta de forma monotónica que se usa como versión de transacción para escrituras idempotentes en foreachBatch operaciones. Use junto con txnAppId para garantizar escrituras exactamente una vez en varias tablas de Delta Lake. Se aplica a Uso foreachBatch para escrituras de tabla idempotentes.
optimizeWrite None true, false Indica si se va a habilitar la escritura de optimización automática para esta operación de escritura. Invalida la spark.databricks.delta.optimizeWrite.enabled configuración. Se aplica a ¿Qué es Delta Lake en Azure Databricks?.
userMetadata None Cualquier cadena Cadena definida por el usuario anexada a los metadatos de confirmación de la operación de escritura. Visible en la salida de DESCRIBE HISTORY. Se aplica a Las tablas enriquecidas con metadatos personalizados.

CSV

Se aplican las siguientes opciones al escribir archivos CSV.

Clave Predeterminado Valores válidos Descripción
charToEscapeQuoteEscaping \0 (no habilitado) Un solo carácter Carácter usado para escapar el carácter de escape cuando difiere del carácter de comillas. Se aplica a csv (DataFrameWriter).
compression none none (default), bzip2, gzip, lz4, snappy, , deflatezstd Códec de compresión que se va a usar al escribir. Se aplica a csv (DataFrameWriter).
dateFormat yyyy-MM-dd Cadena de formato de fecha Cadena de formato para los valores de columna de fecha. Se aplica a csv (DataFrameWriter).
emptyValue Cadena vacía Cualquier cadena Cadena escrita para valores vacíos (no NULL). Se aplica a csv (DataFrameWriter).
encoding UTF-8 Un java.nio.charset.Charset nombre Codificación de caracteres para los archivos de salida. Se aplica a csv (DataFrameWriter).
escape \ Un solo carácter Carácter usado para escapar valores entre comillas. Se aplica a csv (DataFrameWriter).
escapeQuotes true true, false Indica si se deben escapar los caracteres de comillas dentro de los valores de campo entre comillas. Se aplica a csv (DataFrameWriter).
header false true, false Si se van a escribir nombres de columna como primera línea de la salida. Se aplica a csv (DataFrameWriter).
ignoreLeadingWhiteSpace false true, false Si se va a recortar el espacio en blanco inicial de los valores al escribir. Se aplica a csv (DataFrameWriter).
ignoreTrailingWhiteSpace false true, false Si se va a recortar el espacio en blanco final de los valores al escribir. Se aplica a csv (DataFrameWriter).
lineSep \n Una cadena Cadena separadora de línea usada entre registros. Se aplica a csv (DataFrameWriter).
locale en-US Un java.util.Locale identificador Un identificador java.util.Locale. Un Java configuración regional identificada que afecta a la fecha, la marca de tiempo y el análisis decimal predeterminados dentro del CSV.
nullValue Cadena vacía Cualquier cadena Cadena escrita para valores NULL. Se aplica a csv (DataFrameWriter).
quote " Un solo carácter Carácter utilizado para comillas de valores de campo que contienen el separador. Se aplica a csv (DataFrameWriter).
quoteAll false true, false Si se deben incluir todos los valores de campo entre comillas, independientemente del contenido. Se aplica a csv (DataFrameWriter).
sep , Una cadena Carácter delimitador de campo. Se aplica a csv (DataFrameWriter).
timestampFormat yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] Cadena de formato de marca de tiempo Cadena de formato para los valores de columna de marca de tiempo. Se aplica a csv (DataFrameWriter).
timestampNTZFormat yyyy-MM-dd'T'HH:mm:ss[.SSS] Cadena de formato de marca de tiempo Dar formato a la cadena para la marca de tiempo sin valores de columna de zona horaria (TimestampNTZType).

Excel

Las siguientes opciones se aplican al escribir archivos Excel.

Clave Predeterminado Valores válidos Descripción
dataAddress None Un nombre de hoja o una cadena de referencia de celda El nombre de la hoja o la celda inicial de la escritura. Si se omite, escribe en una hoja denominada Sheet1 a partir de la celda A1. Acepta un nombre de hoja (SheetName) o una sola referencia de celda (SheetName!A1). No se admiten intervalos de celdas para escrituras.
dateFormatInWrite yyyy-mm-dd Cadena de formato de fecha Excel Excel cadena de formato de celda aplicada a Date columnas. Usa Excel sintaxis de formato.
headerRows 0 0, 1 Si se van a escribir nombres de columna como primera fila.
timestampNTZFormat yyyy-mm-dd hh:mm:ss Cadena de formato de marca de tiempo Excel Excel cadena de formato de celda aplicada a las columnas TimestampNTZ y Timestamp. Usa Excel sintaxis de formato.
version xlsx xlsx, xls La versión de formato de archivo Excel que se va a escribir.

JSON

Se aplican las siguientes opciones al escribir archivos JSON.

Clave Predeterminado Valores válidos Descripción
compression none none, bzip2, gzip, lz4, snappy, , deflatezstd Códec de compresión que se va a usar al escribir. Se aplica a json (DataFrameWriter).
dateFormat yyyy-MM-dd Cadena de formato de fecha Cadena de formato para los valores de columna de fecha. Se aplica a json (DataFrameWriter).
encoding UTF-8 Un java.nio.charset.Charset nombre Codificación de caracteres para los archivos de salida. Se aplica a json (DataFrameWriter).
ignoreNullFields valor de spark.sql.jsonGenerator.ignoreNullFields true, false Si se van a omitir campos con valores NULL de la salida JSON. Se aplica a json (DataFrameWriter).
lineSep \n Una cadena Cadena separadora de línea usada entre registros. Se aplica a json (DataFrameWriter).
locale en-US Un java.util.Locale identificador Un Java identificador de configuración regional que afecta a la fecha, la marca de tiempo y el análisis decimal predeterminados dentro del JSON.
pretty false true, false Indica si se va a habilitar la salida JSON bonita (con sangría y multilínea).
sortKeys false true, false Si se ordenan las claves de los objetos JSON alfabéticamente en la salida. Resulta útil para producir resultados deterministas.
timestampFormat yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] Cadena de formato de marca de tiempo Cadena de formato para los valores de columna de marca de tiempo. Se aplica a json (DataFrameWriter).
timestampNTZFormat yyyy-MM-dd'T'HH:mm:ss[.SSS] Cadena de formato de marca de tiempo Dar formato a la cadena para la marca de tiempo sin valores de columna de zona horaria (TimestampNTZType).
writeNonAsciiCharacterAsCodePoint false true, false Si se deben codificar caracteres no ASCII como \uXXXX secuencias de escape Unicode en lugar de caracteres UTF-8 literales en la salida.

ORC

Las siguientes opciones se aplican al escribir archivos ORC.

Clave Predeterminado Valores válidos Descripción
compression zstd none, uncompressed, snappy, zlib, lzo, zstd, , lz4brotli Códec de compresión que se va a usar al escribir. Se aplica a orc (DataFrameWriter).

Parquet

Las siguientes opciones se aplican al escribir archivos Parquet.

Clave Predeterminado Valores válidos Descripción
compression snappy none, uncompressed, snappy, gzip, lzo, brotli, lz4, lz4_rawzstd Códec de compresión que se va a usar al escribir. Se aplica a parquet (DataFrameWriter).
spark.sql.parquet.outputTimestampType INT96 INT96, , TIMESTAMP_MICROS, TIMESTAMP_MILLIS Tipo físico que se usa para codificar columnas de marca de tiempo. Se usa INT96 para la compatibilidad con lectores de Parquet heredados que no admiten los tipos de marca de tiempo estándar.

Texto

Las siguientes opciones se aplican al escribir archivos de texto.

Clave Predeterminado Valores válidos Descripción
compression none none, bzip2, gzip, lz4, snappy, , deflatezstd Códec de compresión que se va a usar al escribir. Se aplica al texto (DataFrameWriter).
encoding UTF-8 Un java.nio.charset.Charset nombre Codificación de caracteres para los archivos de salida.
lineSep \n Una cadena Cadena separadora de línea usada entre registros. Se aplica al texto (DataFrameWriter).

XML

Las siguientes opciones se aplican al escribir archivos XML.

Clave Predeterminado Valores válidos Descripción
arrayElementName item Cualquier cadena Nombre del elemento de los elementos de matriz que no tienen ningún nombre explícito. Se aplica a xml (DataFrameWriter).
attributePrefix _ Cualquier cadena Prefijo antepuesto a nombres de campo que corresponden a atributos XML. Se aplica a xml (DataFrameWriter).
compression none none, bzip2, gzip, lz4, snappy, , deflatezstd Códec de compresión que se va a usar al escribir. Se aplica a xml (DataFrameWriter).
dateFormat yyyy-MM-dd Cadena de formato de fecha Cadena de formato para los valores de columna de fecha. Se aplica a xml (DataFrameWriter).
declaration version="1.0" encoding="UTF-8" standalone="yes" Cadena de declaración XML o cadena vacía que se va a suprimir Cadena de declaración XML escrita en la parte superior de cada archivo de salida. Establezca en una cadena vacía para suprimir la declaración. Se aplica a xml (DataFrameWriter).
encoding UTF-8 Un java.nio.charset.Charset nombre Codificación de caracteres para los archivos de salida. Se aplica a xml (DataFrameWriter).
indent 4 espacios Cualquier cadena Cadena usada para aplicar sangría a elementos secundarios en la salida. Establezca en una cadena vacía para desactivar la sangría y escribir cada fila en una sola línea.
locale en-US Un java.util.Locale identificador Un Java identificador de configuración regional que afecta al formato de fecha, marca de tiempo y decimal predeterminado dentro del XML.
nullValue null Cualquier cadena Cadena escrita para valores NULL. Cuando se establece en null, se omiten atributos y elementos secundarios para campos NULL. Se aplica a xml (DataFrameWriter).
rootTag ROWS Cualquier cadena Etiqueta de elemento raíz que ajusta todos los elementos de fila de la salida. Se aplica a xml (DataFrameWriter).
rowTag ROW Cualquier cadena Etiqueta de elemento que representa una fila en la salida. Se aplica a xml (DataFrameWriter).
singleVariantColumn None Cadena de nombre de columna Nombre de la única columna Variant que se va a escribir en archivos XML. Se aplica a xml (DataFrameWriter).
timestampFormat yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] Cadena de formato de marca de tiempo Cadena de formato para los valores de columna de marca de tiempo. Se aplica a xml (DataFrameWriter).
timestampNTZFormat yyyy-MM-dd'T'HH:mm:ss[.SSS] Cadena de formato de marca de tiempo Cadena de formato para la marca de tiempo sin valores de columna de zona horaria. Se aplica a xml (DataFrameWriter).
validateName true true, false Si se produce una excepción si un nombre de columna no es un identificador de elemento XML válido. Se aplica a xml (DataFrameWriter).
valueTag _VALUE Cualquier cadena Nombre de campo usado para los datos de caracteres en elementos XML que también tienen atributos o elementos secundarios. Se aplica a xml (DataFrameWriter).

Opciones de DataStreamWriter

Use estas opciones con DataStreamWriter.option() para configurar escrituras de streaming.

Example

En el ejemplo siguiente se establece la ubicación del punto de control de una secuencia:

Python
(df.writeStream
  .format("delta")
  .option("checkpointLocation", "/path/to/checkpoint")
  .start("/path/to/table"))
Scala
df.writeStream
  .format("delta")
  .option("checkpointLocation", "/path/to/checkpoint")
  .start("/path/to/table")

Común

Las siguientes opciones se aplican a todas las operaciones de escritura de streaming.

Clave Predeterminado Valores válidos Descripción
checkpointLocation Ninguno (obligatorio) Cadena de ruta de acceso Ruta de acceso al directorio de punto de control de la consulta de streaming. Necesario para la tolerancia a errores y garantías de procesamiento exactamente una vez. Cada consulta de streaming debe usar una ubicación de punto de control única. Databricks recomienda almacenar puntos de control en un volumen del catálogo de Unity o en una ruta de acceso de almacenamiento en la nube. Consulte Puntos de control de Structured Streaming.
path None Cadena de ruta de acceso Ruta de acceso de salida para receptores de streaming basados en archivos, como Parquet. Solo se aplica a formatos basados en archivos.

Receptor de consola

Las siguientes opciones se aplican al escribir secuencias en el receptor de la consola.

Clave Predeterminado Valores válidos Descripción
numRows 20 Enteros positivos Número de filas que se van a mostrar para cada microproceso al escribir en el receptor de la consola.
truncate true true, false Si se truncan cadenas largas al mostrar filas. Establézcalo en false para mostrar valores de cadena completos.

Delta Lake

Las siguientes opciones se aplican al escribir una secuencia en una tabla de Delta Lake mediante format("delta"). No se admiten opciones de solo sobrescritura como overwriteSchema, replaceWherey partitionOverwriteMode para escrituras de streaming.

Clave Predeterminado Valores válidos Descripción
mergeSchema false true, false Si va a evolucionar el esquema de tabla de Delta Lake cuando el dataframe de streaming contiene nuevas columnas. Solo se aplica al modo de salida anexado. Se aplica a Actualizar esquemas de tabla con evolución del esquema.
userMetadata None Cualquier cadena Cadena definida por el usuario anexada a los metadatos de confirmación de la operación de escritura. Visible en la salida de DESCRIBE HISTORY. Se aplica a Las tablas enriquecidas con metadatos personalizados.

Receptor de archivos

La siguiente opción se aplica al escribir una secuencia en formatos basados en archivos (Parquet, JSON, CSV, ORC, text). Para obtener opciones específicas del formato, consulte Opciones de DataFrameWriter.

Clave Predeterminado Valores válidos Descripción
retention None Cadena de tiempo como 7 days o 24 hours Cuánto tiempo se conservan los archivos de metadatos receptores usados para la tolerancia a errores y la compactación. Cuando no se establece, los archivos de metadatos se conservan indefinidamente.

Receptor de Kafka

Las siguientes opciones se aplican al escribir en Kafka.

Clave Predeterminado Valores válidos Descripción
kafka.bootstrap.servers None Una lista separada por comas de host:port cadenas Required. Lista separada por comas de direcciones de agente host:port de Kafka.
topic None Cualquier cadena Tema de Kafka de destino para todas las filas. Obligatorio si dataFrame no incluye una topic columna.
kafka.* None Cualquier valor de configuración del productor de Kafka Cualquier configuración del productor de Kafka con kafka.el prefijo . Por ejemplo: kafka.compression.type.

Receptor de memoria

Las siguientes opciones se aplican al escribir secuencias en el receptor de memoria.

Clave Predeterminado Valores válidos Descripción
queryName Ninguno (obligatorio) Cualquier cadena Nombre de la tabla en memoria en la que escribe la consulta. Necesario para el receptor de memoria. También se puede configurar a través de .queryName().
mode exactlyonce exactlyonce, atleastonce Garantía de entrega para el receptor de memoria. exactlyonce usa el modo micro-batch con semántica exactamente una vez. atleastonce usa el modo continuo con semántica de al menos una vez.

Opciones de funciones de Spark

Algunas funciones integradas de Spark SQL aceptan un options mapa que controla el comportamiento de análisis o serialización. Pase las opciones como Python dict o Scala Map[String, String].

Example

En el ejemplo siguiente se analiza una columna JSON al quitar registros con formato incorrecto:

Python
from pyspark.sql.functions import from_json
from pyspark.sql.types import StructType, StructField, StringType

schema = StructType([StructField("name", StringType())])
df = df.withColumn("parsed", from_json("json_col", schema, {"mode": "DROPMALFORMED"}))
Scala
import org.apache.spark.sql.functions.from_json
import org.apache.spark.sql.types._

val schema = StructType(Seq(StructField("name", StringType)))
val df = df.withColumn("parsed", from_json(col("json_col"), schema, Map("mode" -> "DROPMALFORMED")))

Avro

Las funciones de Avro aceptan las mismas opciones que las opciones de DataFrame correspondientes:

Example

En el ejemplo siguiente se descodifica una columna avro con la evolución del esquema habilitada:

Python
from pyspark.sql.functions import from_avro

df = df.withColumn("decoded", from_avro("avro_col", json_schema, {"avroSchemaEvolutionMode": "restart"}))
Scala
import org.apache.spark.sql.avro.functions.from_avro

val df = df.withColumn("decoded", from_avro(col("avro_col"), jsonSchema, Map("avroSchemaEvolutionMode" -> "restart")))

Además, las variantes del Registro de esquema de from_avro y to_avro aceptan las siguientes opciones:

Clave Predeterminado Valores válidos Descripción
schemaId None Entero de identificador de esquema Identificador de esquema del Registro de esquemas de Confluent que se usará al descodificar datos de Avro que se codificaron con un esquema incompatible con jsonFormatSchema. Solo se aplica a from_avro .
confluent.schema.registry.* None Cualquier valor de propiedad de cliente sr de Confluent Propiedades de configuración del cliente del Registro de esquemas de Confluent. Pase cualquier propiedad de cliente sr de Confluent mediante este prefijo, por ejemplo confluent.schema.registry.basic.auth.user.info , para las credenciales de autenticación básicas. Necesario para las variantes del Registro de esquema de from_avro y to_avro.

CSV

Las funciones CSV aceptan las mismas opciones que las correspondientes opciones de DataFrame:

Example

En el ejemplo siguiente se lee CSV con un separador y NULL un valor personalizados:

Python
from pyspark.sql.functions import from_csv
from pyspark.sql.types import StructType, StructField, IntegerType, StringType

schema = StructType([StructField("id", IntegerType()), StructField("name", StringType())])
df = df.withColumn("parsed", from_csv("csv_col", schema, {"sep": "|", "nullValue": "N/A"}))
Scala
import org.apache.spark.sql.functions.from_csv
import org.apache.spark.sql.types._

val schema = StructType(Seq(StructField("id", IntegerType), StructField("name", StringType)))
val df = df.withColumn("parsed", from_csv(col("csv_col"), schema, Map("sep" -> "|", "nullValue" -> "N/A")))

JSON

Las funciones JSON aceptan las mismas opciones que las opciones de DataFrame correspondientes:

Example

En el ejemplo siguiente se escribe JSON con NULL campos omitido y con formato bonito habilitado:

Python
from pyspark.sql.functions import to_json

df = df.withColumn("json_str", to_json("struct_col", {"pretty": "true", "ignoreNullFields": "true"}))
Scala
import org.apache.spark.sql.functions.to_json

val df = df.withColumn("json_str", to_json(col("struct_col"), Map("pretty" -> "true", "ignoreNullFields" -> "true")))

Protobuf

from_protobuf y to_protobuf no usan un DataSource basado en archivos. Los datos protobuf siempre se leen y escriben como columnas binarias mediante estas funciones. Las opciones se pasan como Map[String, String] y distinguen mayúsculas de minúsculas.

Example

En el ejemplo siguiente se descodifica una columna Protobuf mediante el modo PERMISSIVE:

Python
from pyspark.sql.functions import from_protobuf

df = df.withColumn("decoded", from_protobuf("proto_col", "MyMessage", "/path/to/descriptor.desc",
    {"mode": "PERMISSIVE", "enums.as.ints": "true"}))
Scala
import org.apache.spark.sql.protobuf.functions.from_protobuf

val df = df.withColumn("decoded", from_protobuf(col("proto_col"), "MyMessage", "/path/to/descriptor.desc",
    Map("mode" -> "PERMISSIVE", "enums.as.ints" -> "true")))

Las funciones protobuf usan las siguientes opciones:

Clave Predeterminado Valores válidos Descripción
mode FAILFAST FAILFAST, PERMISSIVE Cómo controlar registros dañados. FAILFAST genera una excepción. PERMISSIVE establece los campos con formato incorrecto en NULL. Se aplica a from_protobuf.
recursive.fields.max.depth -1 (deshabilitado) 0 a 10 Profundidad máxima de recursión para campos Protobuf recursivos. Establézcalo en 0 para desactivar la compatibilidad con campos recursivos. Se aplica a from_protobuf.
convert.any.fields.to.json false true, false Si se van a convertir campos protobuf Any en una cadena JSON en lugar de .STRUCT Se aplica a from_protobuf.
emit.default.values false true, false Si se deben emitir campos con cero o valores predeterminados (semántica proto3). Cuando false, los campos con valores predeterminados se omiten de la salida. Se aplica a from_protobuf.
enums.as.ints false true, false Indica si se deben representar campos de enumeración como valores enteros en lugar de cadenas. Se aplica a from_protobuf.
upcast.unsigned.ints false true, false Indica si se va a realizar la difusión uint32 a Long y uint64 a para Decimal(20,0) evitar el desbordamiento de enteros. Se aplica a from_protobuf.
unwrap.primitive.wrapper.types false true, false Si se van a desencapsular google.protobuf los tipos de contenedor (por ejemplo, Int32Value y StringValue) a sus tipos primitivos de Spark correspondientes. Se aplica a from_protobuf.
retain.empty.message.types false true, false Si se deben conservar los tipos de mensaje Protobuf vacíos en el esquema de salida insertando una columna ficticia. Se aplica a from_protobuf.
schema.registry.subject None Cualquier cadena Nombre del firmante del Registro de esquema. Necesario cuando se usan las variantes del Registro de esquema de from_protobuf y to_protobuf.
schema.registry.address None Una host:port cadena Dirección del Registro de esquema (host y puerto). Necesario cuando se usan las variantes del Registro de esquema de from_protobuf y to_protobuf.
schema.registry.protobuf.name None Cualquier cadena Especifica el mensaje Protobuf que se va a usar cuando el asunto del Registro de esquema contiene varios mensajes. Opcional.
schema.registry.schema.evolution.mode "restart" "restart", "none" Cómo se controlan los cambios de esquema cuando se detecta un identificador de esquema más reciente en un registro entrante. "restart" finaliza la consulta con UnknownFieldExceptionun ; configura los trabajos para reiniciarse cuando no se pueden recoger los cambios. "none" omite los cambios del identificador de esquema y analiza los registros más recientes con el esquema original.
confluent.schema.registry.<option> Cualquier valor de opción de cliente del Registro de esquema de Confluent válido Pase cualquier opción de cliente del Registro de esquemas confluent mediante el prefijo "confluent.schema.registry". Por ejemplo, establezca en "confluent.schema.registry.basic.auth.credentials.source""USER_INFO" y "confluent.schema.registry.basic.auth.user.info" en "<KEY>:<SECRET>" para configurar la autenticación básica.

XML

Las funciones XML aceptan las mismas opciones que las opciones de DataFrame correspondientes:

Example

En el ejemplo siguiente se escribe XML con etiquetas de fila y raíz personalizadas:

Python
from pyspark.sql.functions import to_xml

df = df.withColumn("xml_str", to_xml("struct_col", {"rootTag": "records", "rowTag": "record"}))
Scala
import org.apache.spark.sql.functions.to_xml

val df = df.withColumn("xml_str", to_xml(col("struct_col"), Map("rootTag" -> "records", "rowTag" -> "record")))