Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Creación de un canal de entrada de aprendizaje automático en AWS Clean Rooms ML
Requisitos previos:
-
Y Cuenta de AWS con acceso a AWS Clean Rooms
-
Una colaboración configurada en el AWS Clean Rooms lugar donde desea crear el canal de entrada ML
-
Permisos para consultar datos y crear canales de entrada de aprendizaje automático en la colaboración.
-
(Opcional) Un algoritmo modelo existente para asociarlo al canal de entrada de aprendizaje automático o permisos para crear uno nuevo
-
(Opcional) Tablas con reglas de análisis que se pueden ejecutar para el modelo especificado.
-
(Opcional) Una plantilla de análisis o consulta SQL existente que se utilizará para generar el conjunto de datos
-
(Opcional) Un rol de servicio existente con los permisos adecuados o permisos para crear un nuevo rol de servicio
-
(Opcional) Una AWS KMS clave personalizada si quieres usar tu propia clave de cifrado
-
Permisos adecuados para crear y administrar modelos de aprendizaje automático en la colaboración
Un canal de entrada de aprendizaje automático es un conjunto de datos que se crea a partir de una consulta de datos específica. Los miembros con la capacidad de consultar datos pueden preparar sus datos para el entrenamiento y la inferencia creando un canal de entrada de aprendizaje automático. La creación de un canal de entrada de aprendizaje automático permite utilizar esos datos en diferentes modelos de entrenamiento dentro de la misma colaboración. Debe crear canales de entrada de aprendizaje automático independientes para el entrenamiento y la inferencia.
Para crear un canal de entrada de aprendizaje automático, debe especificar la consulta SQL que se utiliza para consultar los datos de entrada y crear el canal de entrada de aprendizaje automático. Los resultados de esta consulta nunca se comparten con ningún miembro y permanecen dentro de los límites de Clean Rooms ML. El nombre de recurso de Amazon (ARN) de referencia se utiliza en los pasos siguientes para entrenar un modelo o ejecutar una inferencia.
- Console
-
Para crear un canal de entrada de ML (consola)
-
Inicie sesión en Consola de administración de AWS y abra la AWS Clean Rooms consola en https://console.aws.amazon.com/cleanrooms
. -
En el panel de navegación izquierdo, elija Colaboraciones.
-
En la página de colaboraciones, elige la colaboración en la que quieres crear un canal de entrada de aprendizaje automático.
-
Cuando se abra la colaboración, elija la pestaña de modelos de aprendizaje automático.
-
En Modelos de aprendizaje automático personalizados, en la sección de canales de entrada de aprendizaje automático, seleccione Crear canal de entrada de aprendizaje automático.
-
En la página Crear un canal de entrada ML, para ver los detalles del canal de entrada ML, haga lo siguiente:
-
En Nombre, introduce un nombre único para tu canal.
-
(Opcional) En la descripción, introduce una descripción de tu canal.
-
En Algoritmo de modelo asociado, selecciona el algoritmo que quieres usar.
Seleccione Asociar algoritmo de modelo para agregar uno nuevo.
-
-
En Dataset, elija un método para generar el conjunto de datos de entrenamiento:
-
Elija la consulta SQL para usar los resultados de una consulta SQL como conjunto de datos de entrenamiento.
Si eligió la consulta SQL, introduzca la consulta en el campo de consulta SQL.
(Opcional) Para importar una consulta que hayas usado recientemente, selecciona Importar desde consultas recientes.
-
Elige la plantilla de análisis para usar los resultados de una plantilla de análisis como conjunto de datos de entrenamiento.
aviso
La generación de datos sintéticos evita deducir atributos individuales, ya sea si hay individuos específicos en el conjunto de datos original o si están presentes los atributos de aprendizaje de esos individuos. Sin embargo, no impide que los valores literales del conjunto de datos original, incluida la información de identificación personal (PII), aparezcan en el conjunto de datos sintético.
Recomendamos evitar los valores del conjunto de datos de entrada que estén asociados a un solo sujeto de datos, ya que pueden volver a identificar a un sujeto de datos. Por ejemplo, si solo un usuario vive en un código postal, la presencia de ese código postal en el conjunto de datos sintético confirmaría que el usuario estaba en el conjunto de datos original. Para mitigar este riesgo, se pueden utilizar técnicas como truncar valores de alta precisión o reemplazar catálogos poco comunes por otros. Estas transformaciones pueden formar parte de la consulta utilizada para crear el canal de entrada ML.
-
Si no hay ninguna tabla asociada, elija Asociar tabla para agregar tablas con una regla de análisis que se pueda ejecutar para el modelo especificado.
-
Elija el tipo de trabajador que desea usar al crear este canal de datos. El tipo de trabajador predeterminado es CR.1X. Especifique el número de trabajadores que se van a utilizar. El número de trabajadores predeterminado es 16. Para especificar las propiedades de Spark:
-
Amplíe Propiedades de Spark.
-
Selecciona Añadir propiedades de Spark.
-
En el cuadro de diálogo de propiedades de Spark, elige un nombre de propiedad en la lista desplegable e ingresa un valor.
En las tablas siguientes se proporciona una definición para cada propiedad.
Para obtener más información sobre las propiedades de Spark, consulta las propiedades de Spark
en la documentación de Apache Spark. nota
Puedes configurar un máximo de 50 propiedades de Spark. El valor de cada propiedad puede tener hasta 500 caracteres.
Nombre de propiedad Description (Descripción) Valor predeterminado Spark.task.maxFailures
Controla cuántas veces consecutivas puede fallar una tarea antes de que el trabajo falle. Requiere un valor mayor o igual a 1. El número de reintentos permitidos es igual a este valor menos 1. El recuento de errores se restablece si cualquier intento tiene éxito. Los errores en las diferentes tareas no se acumulan hasta alcanzar este límite.
4
spark.sql.files.max PartitionBytes
Establece el número máximo de bytes que se pueden empaquetar en una sola partición cuando se leen fuentes basadas en archivos como Parquet, JSON y ORC.
128 MB
Spark.hadoop.fs.s3.max se reintenta
Establece el número máximo de reintentos para las operaciones con archivos de Amazon S3.
(ninguno)
spark.network.timeout
Establece el tiempo de espera predeterminado para todas las interacciones de red. Anula los siguientes ajustes de tiempo de espera si no están configurados:
-
spark.storage.block ManagerHeartbeatTimeoutMs
-
Spark.shuffle.io.ConnectionTimeout
-
Spark.rpc.AskTimeout
-
Spark.rpc.LookupTimeout
120 s
spark.rdd.com press
Especifica si se deben comprimir las particiones RDD serializadas mediante spark.io.compression.codec. Se aplica a _ONLY_SER en Java y Scala, o a StorageLevel.MEMORY _ONLY en Python. StorageLevel.MEMORY Reduce el espacio de almacenamiento, pero requiere más tiempo de procesamiento de la CPU.
false
spark.shuffle.spill.compress
Especifica si se deben comprimir los datos de Shuffle Spill con spark.io.compression.codec.
true
spark.shuffle.compress
Especifica si se deben comprimir los archivos de salida del mapa. La compresión utiliza spark.io.compression.codec.
true
spark.shuffle.service.index.cache.size
Establece el límite de tamaño de la caché, en bytes, a menos que se especifique lo contrario.
100 m
spark.shuffle.io.maxRetries
Establece el número máximo de reintentos para las recuperaciones que fallan debido a excepciones. IO-related
3
spark.shuffle.io.RetryWait
Establece el tiempo de espera entre los reintentos de recuperación. El retraso máximo causado por los reintentos es de 15 segundos de forma predeterminada y se calcula como maxRetries * RetryWait.
5 s
spark.shuffle.io.ConnectionTimeout
Establece el tiempo de espera para que las conexiones establecidas entre los servidores y los clientes de Shuffle se marquen como inactivas y se cierren si aún hay solicitudes de recuperación pendientes pero no hay tráfico en el canal.
(valor de spark.network.timeout)
spark.driver.max ResultSize
Establece el límite de tamaño total de los resultados serializados de todas las particiones para cada acción de Spark, en bytes. Debe ser de al menos 1 M, o 0 para un número ilimitado.
1 g
chispa, memoria, fracción
Establece la fracción de (espacio de almacenamiento: 300 MB) utilizada para la ejecución y el almacenamiento. Cuanto menor sea este valor, más frecuentes serán los derrames y el desalojo de datos almacenados en caché. Se recomienda dejarlo en el valor predeterminado.
0.6
spark.scheduler.mode
Establece el modo de programación entre los trabajos enviados al mismo. SparkContext Se puede configurar en FAIR para utilizar un reparto equitativo en lugar de poner los trabajos en cola uno tras otro. Valores admitidos: FAIR, FIFO.
FIFO
spark.sql.adaptive.advisory PartitionSizeInBytes
Establece el tamaño objetivo en bytes para las particiones aleatorias durante la optimización adaptativa cuando spark.sql.adaptive.enabled es verdadero. Controla el tamaño de la partición al unir particiones pequeñas o dividir particiones sesgadas.
(valor de spark.sql.adaptive.shuffle.target) PostShuffleInputSize
spark.sql.adaptive.auto BroadcastJoinThreshold
Establece el tamaño máximo de la tabla en bytes para transmitirla a los nodos de trabajo durante las uniones. Se aplica solo en un marco adaptativo. Usa el mismo valor predeterminado que BroadcastJoinThreshold spark.sql.auto. Establézcalo en -1 para deshabilitar la transmisión.
(ninguno)
spark.sql.adaptive.coalesce Partitions.enabled
Especifica si se deben unir particiones aleatorias contiguas basadas en spark.sql.adaptive.advisory para optimizar el tamaño de la tarea. PartitionSizeInBytes Requiere que spark.sql.adaptive.enabled sea verdadero.
true
spark.sql.adaptive.coalesce Partitions.initialPartitionNum
Define el número inicial de particiones aleatorias antes de fusionarse. Requiere que tanto spark.sql.adaptive.enabled como spark.sql.adaptive.coalesce sean verdaderas. Partitions.enabled El valor predeterminado es spark.sql.shuffle.partition.
(ninguno)
spark.sql.adaptive.coalesce Partitions.minPartitionSize
Establece el tamaño mínimo para las particiones aleatorias combinadas para evitar que las particiones se vuelvan demasiado pequeñas durante la optimización adaptativa.
1 MB
spark.sql.adaptive.coalesce Partitions.parallelismFirst
Especifica si se deben calcular los tamaños de las particiones en función del paralelismo de clústeres en lugar de en spark.sql.adaptive.advisory durante la fusión de particiones. PartitionSizeInBytes Genera tamaños de partición más pequeños que el tamaño objetivo configurado para maximizar el paralelismo. Se recomienda establecer este valor en falso en los clústeres ocupados para mejorar la utilización de los recursos y evitar el exceso de tareas pequeñas.
true
spark.sql.adaptive.enabled
Especifica si se debe habilitar la ejecución adaptativa de consultas para volver a optimizar los planes de consulta durante la ejecución de las consultas, basándose en estadísticas precisas del tiempo de ejecución.
true
spark.sql.adaptive.force OptimizeSkewedJoin
Especifica si se debe forzar la activación aunque se introduzca una reproducción aleatoria adicional. OptimizeSkewedJoin
false
spark.sql.adaptive.local ShuffleReader.enabled
Especifica si se deben usar lectores aleatorios locales cuando no sea necesario particionar de forma aleatoria, por ejemplo, después de convertir combinaciones de clasificación y combinación en combinaciones de hash de difusión. Requiere que spark.sql.adaptive.enabled sea verdadero.
true
spark.sql.adaptive.max ShuffledHashJoinLocalMapThreshold
Establece el tamaño máximo de partición en bytes para crear mapas hash locales. Prioriza las combinaciones de hash mezcladas sobre las combinaciones de clasificación y fusión cuando:
-
Este valor es igual o superior a spark.sql.adaptive.advisory PartitionSizeInBytes
-
Todos los tamaños de partición están dentro de este límite
Anula la configuración SortMergeJoin spark.sql.join.prefer.
0 bytes
spark.sql.adaptive.optimize SkewsInRebalancePartitions.enabled
Especifica si se deben optimizar las particiones aleatorias sesgadas dividiéndolas en particiones más pequeñas según spark.sql.adaptive.advisory. PartitionSizeInBytes Requiere que spark.sql.adaptive.enabled sea verdadero.
true
spark.sql.adaptive.rebalance PartitionsSmallPartitionFactor
Define el factor de umbral de tamaño para fusionar particiones durante la división. Las particiones con un tamaño inferior a este factor multiplicado por PartitionSizeInBytes spark.sql.adaptive.advisory se fusionan.
0.2
spark.sql.adaptive.skew Join.enabled
Especifica si se debe gestionar el sesgo de datos en las uniones aleatorias dividiendo y, si lo desea, replicando las particiones asimétricas. Se aplica a las uniones hash ordenadas, combinadas y mezcladas. Requiere que spark.sql.adaptive.enabled sea verdadero.
true
spark.sql.adaptive.skew Join.skewedPartitionFactor
Determina el factor de tamaño que determina la inclinación de la partición. Una partición está sesgada cuando su tamaño supera los dos valores siguientes:
-
Este factor se multiplica por la mediana del tamaño de la partición
-
El valor de spark.sql.adaptive.skew Join.skewedPartitionThresholdInBytes
5
spark.sql.adaptive.skew Join.skewedPartitionThresholdInBytes
Establece el umbral de tamaño en bytes para identificar las particiones sesgadas. Una partición está sesgada cuando su tamaño supera los dos siguientes valores:
-
Este umbral
-
El tamaño medio de la partición multiplicado por spark.sql.adaptive.skew Join.skewedPartitionFactor
Se recomienda establecer este valor en un valor mayor que spark.sql.adaptive.advisory. PartitionSizeInBytes
256 MB
Se ha agotado el tiempo de espera de Spark.sql
Controla el tiempo de espera en segundos de las operaciones de transmisión durante las uniones de transmisión.
300 segundos
spark.sql.cbo.enabled
Especifica si se debe habilitar la optimización basada en los costos (CBO) para la estimación de las estadísticas del plan.
false
spark.sql.cbo.join Reorder.dp.star.filter
Especifica si se debe aplicar la heurística del filtro de unión en estrella durante la enumeración de uniones basada en el costo.
false
spark.sql.cbo.join Reorder.dp.threshold
Establece el número máximo de nodos unidos permitido en el algoritmo de programación dinámica.
12
spark.sql.cbo.join Reorder.enabled
Especifica si se debe habilitar el reordenamiento de uniones en la optimización basada en costos (CBO).
false
spark.sql.cbo.plan Stats.enabled
Especifica si se deben obtener los recuentos de filas y las estadísticas de columnas del catálogo durante la generación del plan lógico.
false
spark.sql.cbo.star SchemaDetection
Especifica si se debe habilitar el reordenamiento de las uniones en función de la detección del esquema estelar.
false
spark.sql.files.max PartitionNum
Establece el número máximo objetivo de particiones de archivos divididos para las fuentes basadas en archivos (Parquet, JSON y ORC). Vuelve a escalar las particiones cuando el recuento inicial supera este valor. Se trata de un objetivo sugerido, no de un límite garantizado.
(ninguno)
spark.sql.files.max RecordsPerFile
Establece el número máximo de registros que se escribirán en un único archivo. No se aplica ningún límite cuando se establece en cero o en un valor negativo.
0
spark.sql.files.min PartitionNum
Establece el número mínimo objetivo de particiones de archivos divididos para las fuentes basadas en archivos (Parquet, JSON y ORC). El valor predeterminado es spark.sql.leaf. NodeDefaultParallelism Este es un objetivo sugerido, no un límite garantizado.
(ninguno)
spark.sql.in MemoryColumnarStorage.batchSize
Controla el tamaño del lote para el almacenamiento en caché por columnas. El aumento del tamaño mejora la utilización y la compresión de la memoria, pero aumenta el riesgo de errores por falta de memoria.
10000
spark.sql.in MemoryColumnarStorage.compressed
Especifica si se deben seleccionar automáticamente los códecs de compresión para las columnas en función de las estadísticas de datos.
true
spark.sql.in MemoryColumnarStorage.enableVectorizedReader
Especifica si se debe habilitar la lectura vectorizada para el almacenamiento en caché por columnas.
true
spark.sql.legacy.allow HashOnMapType
Especifica si se permiten las operaciones de hash en estructuras de datos de tipo mapa. Esta configuración antigua mantiene la compatibilidad con la gestión de tipos de mapas de las versiones anteriores de Spark.
(ninguno)
spark.sql.legacy.allow NegativeScaleOfDecimal
Especifica si se permiten valores de escala negativos en las definiciones de tipo decimal. Esta configuración antigua mantiene la compatibilidad con las versiones anteriores de Spark que admitían escalas decimales negativas.
(ninguno)
spark.sql.legacy.cast ComplexTypesToString.enabled
Especifica si se debe habilitar el comportamiento heredado para convertir tipos complejos en cadenas. Mantiene la compatibilidad con las reglas de conversión de tipos de las versiones anteriores de Spark.
(ninguno)
spark.sql.legacy.char VarcharAsString
Especifica si se deben tratar los tipos CHAR y VARCHAR como tipos STRING. Esta configuración antigua proporciona compatibilidad con la gestión de tipos de cadenas de las versiones anteriores de Spark.
(ninguno)
spark.sql.legacy.create EmptyCollectionUsingStringType
Especifica si se deben crear colecciones vacías con elementos de tipo cadena. Esta configuración antigua mantiene la compatibilidad con el comportamiento de inicialización de colecciones de las versiones anteriores de Spark.
(ninguno)
spark.sql.legacy.exponent LiteralAsDecimal.enabled
Especifica si se deben interpretar los literales exponenciales como tipos decimales. Esta configuración antigua mantiene la compatibilidad con el manejo literal numérico de las versiones anteriores de Spark.
(ninguno)
spark.sql.legacy.json.allow EmptyString.enabled
Especifica si se permiten cadenas vacías en el procesamiento de JSON. Esta configuración antigua mantiene la compatibilidad con el comportamiento de análisis de JSON de las versiones anteriores de Spark.
(ninguno)
spark.sql.legacy.parquet.int96 RebaseModeInRead
Especifica si se debe usar el modo de rebase de marcas de tiempo de INT96 antiguo al leer los archivos de Parquet. Esta configuración antigua mantiene la compatibilidad con la gestión de marcas de tiempo de las versiones anteriores de Spark.
(ninguno)
spark.sql.legacy.time ParserPolicy
Controla el comportamiento de análisis del tiempo para garantizar la compatibilidad con versiones anteriores. Esta configuración antigua determina cómo se analizan las marcas de tiempo y las fechas a partir de las cadenas.
(ninguno)
spark.sql.legacy.type Coercion.datetimeToString.enabled
Especifica si se debe habilitar el comportamiento coercitivo de tipo heredado al convertir valores de fecha y hora en cadenas. Mantiene la compatibilidad con las reglas de conversión de fecha y hora de las versiones anteriores de Spark.
(ninguno)
spark.sql.max SinglePartitionBytes
Establece el tamaño máximo de la partición en bytes. El planificador introduce operaciones de mezcla para particiones más grandes con el fin de mejorar el paralelismo.
128 m
Caché de metadatos de Spark.SQL en segundos
Controla el tiempo de vida (TTL) de las cachés de metadatos. Se aplica a los metadatos de los archivos de partición y a las cachés del catálogo de sesiones. Requiere:
-
Un valor positivo mayor que cero
-
spark.sql.CatalogImplementation establecido en hive
-
spark.sql.hive.filesource PartitionFileCacheSize es mayor que cero
-
spark.sql.hive.manage se establece en true FilesourcePartitions
-1000 ms
spark.sql.optimizer.collapse ProjectAlwaysInline
Especifica si se deben contraer las proyecciones adyacentes y las expresiones en línea, incluso cuando esto provoque duplicaciones.
false
spark.sql.optimizer.dynamic PartitionPruning.enabled
Especifica si se deben generar predicados para las columnas de partición utilizadas como claves de unión.
true
spark.sql.optimizer.enable CsvExpressionOptimization
Especifica si se deben optimizar las expresiones CSV en el optimizador de SQL eliminando las columnas innecesarias de las operaciones from_csv.
true
spark.sql.optimizer.enable JsonExpressionOptimization
Especifica si se deben optimizar las expresiones JSON en el optimizador de SQL de la siguiente manera:
-
Eliminando las columnas innecesarias de las operaciones from_json
-
Simplificar las combinaciones from_json y to_json
-
Optimización de las operaciones de named_struct
true
Spark.sql.Optimizer.ExcludedRules
Define las reglas del optimizador que se van a deshabilitar, identificadas mediante nombres de reglas separados por comas. Algunas reglas no se pueden deshabilitar porque son necesarias para que sean correctas. El optimizador registra qué reglas se han desactivado correctamente.
(ninguno)
spark.sql.optimizer.runtime.bloom Filter.applicationSideScanSizeThreshold
Establece el tamaño mínimo de escaneo agregado en bytes necesario para inyectar un filtro Bloom en la aplicación.
10 GB
spark.sql.optimizer.runtime.bloom Filter.creationSideThreshold
Define el umbral de tamaño máximo para inyectar un filtro Bloom en el lado de la creación.
10 MB
spark.sql.optimizer.runtime.bloom Filter.enabled
Especifica si se debe insertar un filtro Bloom para reducir los datos de mezcla cuando un lado de una combinación aleatoria tiene un predicado selectivo.
true
spark.sql.optimizer.runtime.bloom Filter.expectedNumItems
Define el número predeterminado de elementos esperados en el filtro Bloom en tiempo de ejecución.
1000000
spark.sql.optimizer.runtime.bloom Filter.maxNumBits
Establece el número máximo de bits permitido en el filtro Bloom en tiempo de ejecución.
67108864
spark.sql.optimizer.runtime.bloom Filter.maxNumItems
Establece el número máximo de elementos esperados permitidos en el filtro Bloom en tiempo de ejecución.
4000000
spark.sql.optimizer.runtime.bloom Filter.numBits
Define el número predeterminado de bits que se utilizan en el filtro Bloom en tiempo de ejecución.
8388608
spark.sql.optimizer.runtime.row LevelOperationGroupFilter.enabled
Especifica si se debe habilitar el filtrado de grupos en tiempo de ejecución para las operaciones a nivel de fila. Permite a las fuentes de datos:
-
Elimine grupos enteros de datos (como archivos o particiones) mediante filtros de fuentes de datos
-
Ejecute consultas en tiempo de ejecución para identificar los registros coincidentes
-
Descarte los grupos innecesarios para evitar costosas reescrituras
Limitaciones:
-
No todas las expresiones se pueden convertir en filtros de fuentes de datos
-
Algunas expresiones requieren la evaluación de Spark (como las subconsultas)
true
spark.sql.optimizer.runtime Filter.number.threshold
Establece el número total de filtros de tiempo de ejecución inyectados (distintos de DPP). Esto es para evitar que los OOM de los controladores tengan demasiados filtros Bloom.
10
spark.sql.optimizer.runtime Filter.semiJoinReduction.enabled
Especifica si se debe insertar una combinación parcial para reducir los datos de mezcla cuando un lado de una combinación aleatoria tiene un predicado selectivo.
false
spark.sql.parquet.AggregatePushdown
Especifica si se deben enviar los agregados a Parquet para optimizarlos. Soporta:
-
MIN y MAX para tipos booleanos, enteros, flotantes y de fecha
-
COUNT para todos los tipos de datos
Lanza una excepción si faltan estadísticas en el pie de página de un archivo de Parquet.
false
spark.sql.parquet.columnar ReaderBatchSize
Controla el número de filas de cada lote de lectores vectorizados de Parquet. Elija un valor que equilibre la sobrecarga de rendimiento y el uso de memoria para evitar errores por falta de memoria.
4096
spark.sql.parquet.enable VectorizedReader
Especifica si se debe habilitar la decodificación vectorizada de Parquet.
true
spark.sql.shuffle.partition
Establece el número predeterminado de particiones para la mezcla de datos durante las uniones o agregaciones. No se puede modificar entre reinicios de consultas de streaming estructuradas desde la misma ubicación del punto de control.
200
spark.sql.shuffled HashJoinFactor
Define el factor de multiplicación que se utiliza para determinar si se puede combinar una combinación aleatoria. Se selecciona una unión hash aleatoria cuando el tamaño de los datos del lado pequeño multiplicado por este factor es menor que el tamaño de los datos del lado grande.
3
spark.sql.sources.parallel PartitionDiscovery.threshold
Establece el número máximo de rutas para la lista de archivos del lado del controlador con fuentes basadas en archivos (Parquet, JSON y ORC). Cuando se superan los límites durante la detección de particiones, los archivos se enumeran utilizando una tarea distribuida de Spark independiente.
32
spark.sql.statistics.histogram.enabled
Especifica si se deben generar histogramas de altura equivalente durante el cálculo de las estadísticas de las columnas para mejorar la precisión de la estimación. Requiere un escaneo de tabla adicional además del necesario para las estadísticas de columnas básicas.
false
spark.dynamic Allocation.executorIdleTimeout
Establece el tiempo que un ejecutor debe permanecer inactivo antes de que se elimine cuando la asignación dinámica está habilitada.
60 s
spark.dynamic Allocation.schedulerBacklogTimeout
Establece el tiempo durante el que deben acumularse las tareas pendientes antes de solicitar nuevos ejecutores cuando la asignación dinámica está habilitada.
1 s
spark.dynamic Allocation.sustainedSchedulerBacklogTimeout
Igual que spark.dynamicAllocation.schedulerBacklogTimeout, pero solo se usa para solicitudes de ejecutor posteriores.
(valor de spark.dynamic) Allocation.schedulerBacklogTimeout
spark.scheduler.min RegisteredResourcesRatio
Establece la proporción mínima de recursos registrados (recursos registrados frente al total de recursos esperados) que deben esperar antes de que comience la programación. Se especifica como un valor doble entre 0.0 y 1.0. Independientemente de si se ha alcanzado la proporción mínima de recursos, RegisteredResourcesWaitingTime spark.scheduler.max controla el tiempo máximo que pasará antes de que comience la programación.
0.8
spark.scheduler.max RegisteredResourcesWaitingTime
Establece el tiempo máximo de espera para que los recursos se registren antes de que comience la programación.
30 segundos
spark.sql.hive.metastore PartitionPruningFallbackOnException
Especifica si se recurre a obtener todas las particiones del metaalmacén de Hive y si se eliminan las particiones en el lado del cliente de Spark cuando se encuentran desde el metaalmacén. MetaException
false
spark.sql.cross Join.enabled
Especifica si se permiten las consultas que contienen un producto cartesiano sin una sintaxis CROSS JOIN explícita.
true
spark.sql.analyzer.maxIterations
Establece el número máximo de iteraciones que ejecuta el analizador de consultas antes de darse por vencido. Los valores más altos permiten al analizador procesar consultas muy grandes o muy anidadas.
100
spark.sql.dataprefetch.filescan.max ParallelismPerTask
Establece el número máximo de divisiones de archivos que se obtendrán previamente de forma simultánea para cada tarea al escanear archivos.
4
spark.sql.iceberg.data-prefetch.enabled
Especifica si se debe habilitar la optimización previa a la captura de datos al leer las tablas. Iceberg
true
spark.sql.legacy.null ValueWrittenAsQuotedEmptyStringCsv
Especifica si se debe restaurar el comportamiento tradicional de escribir valores nulos como cadenas vacías entre comillas en la salida CSV. Cuando es falso, Spark escribe valores nulos como cadenas vacías sin comillas.
false
spark.max RemoteBlockSizeFetchToMem
Establece el umbral de tamaño por encima del cual Spark transfiere los bloques remotos al disco en lugar de a la memoria. Esto evita que una sola solicitud grande consuma demasiada memoria.
200m
spark.emr-serverless.allocation.batch.size
Establece el número de ejecutores que se van a solicitar a la vez en cada ronda de asignación de ejecutores.
20
Nombre de propiedad Description (Descripción) Valor predeterminado spark.sql.auto BroadcastJoinThreshold
Establece el tamaño máximo de la tabla en bytes para transmitirla a los nodos de trabajo durante las uniones. Establézcalo en -1 para deshabilitar la transmisión.
10 MB (-1 para CR.4X 32 trabajadores)
spark.dynamic Allocation.enabled
Especifica si se debe utilizar la asignación dinámica de recursos, que aumenta o reduce el número de ejecutores registrados en esta aplicación en función de la carga de trabajo.
true
spark.files.fetch Failure.unRegisterOutputOnHost
Especifica si se deben anular el registro de todas las salidas de mapa de un host cuando se produce un error de recuperación. Si es falso, Spark anula el registro solo de las salidas del ejecutor específico que ha fallado, lo que reduce la necesidad de volver a calcular las etapas.
false
spark.io.compression.codec
Establece el códec utilizado para comprimir los datos internos, como las particiones RDD, el registro de eventos, las variables de transmisión y las salidas aleatorias. Valores admitidos: lz4, snappy, zstd, gzip.
snappy
spark.sql.session.Timezone
Define la zona horaria de la sesión para gestionar las marcas de tiempo en los literales de cadena y la conversión de objetos Java. Acepta:
-
Region-based ID en area/city formato (como America/Los _Angeles)
-
Desfases de zona en HH:mm:ss formato (+/-) HH, (+/-) HH:mm o (+/-) (como -08 o + 01:00)
-
UTC o Z como alias para + 00:00
UTC
-
-
Para la retención de datos en días, introduce el número de días que se conservarán los datos.
-
Para el formato de resultados, elija CSV o Parquet como formato de datos que debe usar el canal de entrada ML.
-
-
Para acceder al servicio, elija el nombre del rol de servicio existente que se usará para acceder a esta tabla o elija Crear y usar un nuevo rol de servicio.
-
Para el cifrado, elija Cifrar el secreto con una clave de KMS personalizada para especificar su propia clave de KMS y la información relacionada. De lo contrario, Clean Rooms ML administrará el cifrado.
-
(Opcional) En el caso de Compute Payer, selecciona al miembro de la colaboración que paga los costos de procesamiento de las consultas.
nota
Si solo hay un pagador candidato para el procesamiento de consultas en la colaboración, el pagador será ese pagador de forma predeterminada.
-
(Opcional) En el caso del pagador por generación de datos sintéticos, seleccione al miembro de la colaboración que pague los costos de generación de datos sintéticos.
nota
Esta opción aparece cuando el canal de entrada ML utiliza una plantilla de análisis configurada para la salida de datos sintéticos. Si solo hay un pagador candidato para la generación de datos sintéticos en la colaboración, el pagador predeterminado es ese pagador.
-
Seleccione Crear canal de entrada ML.
La creación del canal de entrada ML tardará unos minutos. Puede ver una lista de canales de entrada ML en la pestaña de modelos ML.
nota
Una vez creado el canal de entrada ML, no puede editarlo.
-
- API
-
Para crear un canal de entrada de ML (API)
Ejecuta el siguiente código con tus parámetros específicos:
import boto3 acr_client = boto3.client('cleanroomsml') acr_client.create_ml_input_channel( name="ml_input_channel_name", membershipIdentifier='membership_id', configuredModelAlgorithmAssociations=[configured_model_algorithm_association_arn], retentionInDays=1, inputChannel={ "dataSource": { "protectedQueryInputParameters": { "sqlParameters": { "queryString": "select * fromtable", "computeConfiguration": { "worker": { "type": "CR.1X", "number":16, "properties": { "spark": { "spark configuration key": "spark configuration value", } } } }, "resultFormat": "PARQUET" } } }, "roleArn": "arn:aws:iam::111122223333:role/role_name" } ) channel_arn = resp['ML Input Channel ARN']