Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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 ]:
|
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:
|
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:
|
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.
|
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:
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:
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.csvEspecificar 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:
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:
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:
-
from_avroyschema_of_avrouse las opciones de Avro DataFrameReader. -
to_avrousa las opciones de DataFrameWriter Avro.
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:
-
from_csvyschema_of_csvusan las opciones de CSV DataFrameReader. -
to_csvusa las opciones de CSV DataFrameWriter.
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:
-
from_jsonyschema_of_jsonusar las opciones JSON dataFrameReader. -
to_jsonusa las opciones JSON dataFrameWriter.
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:
-
from_xmlyschema_of_xmlusar las opciones XML de DataFrameReader. -
to_xmlusa las opciones XML dataFrameWriter.
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")))