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.
Uso de S3 Select con Spark para mejorar el rendimiento de las consultas
importante
Amazon S3 Select ya no está disponible para los nuevos clientes. Los clientes actuales de Amazon S3 Select pueden seguir utilizando la característica de la forma habitual. Más información
Con la EMR versión 5.17.0 y posteriores de Amazon, puedes usar S3 Select
S3 Select es compatible con el uso de JSON archivos CSV s3selectCSV
y s3selectJSON
valores para especificar el formato de los datos. Para obtener más información y ejemplos, consulte Especificación de S3 Select en el código.
¿S3 Select es adecuado para mi aplicación?
Le recomendamos que realice un análisis comparativo sus aplicaciones con y sin S3 Select para ver si su uso puede ser adecuado para su aplicación.
Utilice las siguientes directrices para determinar si la aplicación es candidata a utilizar S3 Select:
-
La consulta filtra más de la mitad del conjunto de datos original.
-
La conexión de red entre Amazon S3 y el EMR clúster de Amazon tiene una buena velocidad de transferencia y ancho de banda disponible. Amazon S3 no comprime HTTP las respuestas, por lo que es probable que el tamaño de la respuesta aumente en el caso de los archivos de entrada comprimidos.
Consideraciones y limitaciones
-
No se admite el cifrado del lado del servidor de Amazon S3 con claves de cifrado proporcionadas por el cliente (SSE-C) ni el cifrado del lado del cliente.
-
No se admite la propiedad
AllowQuotedRecordDelimiters
. Si se especifica esta propiedad, se producirá un error en la consulta. -
Solo se admiten archivos en formato CSV -8JSON. UTF No CSVs se admiten las líneas múltiples.
-
Solo se admiten los archivos sin comprimir o gzip.
-
No se admiten Spark CSV ni JSON opciones como
nanValue
positiveInf
,negativeInf
, ni opciones relacionadas con registros corruptos (por ejemplo, el modo failfast y dropmalformed). -
El uso de comas (,) dentro de los decimales no se admite. Por ejemplo,
10,000
no se admite, pero sí se admite10000
. -
No se admiten los caracteres de comentario en la última línea.
-
Las líneas vacías al final de un archivo no se procesan.
-
Los siguientes filtros no se delegan en Amazon S3:
-
Funciones de agregación como
COUNT()
ySUM()
. -
Filtros que aplican
CAST()
a un atributo. Por ejemplo,CAST(stringColumn as INT) = 1
. -
Filtros con un atributo que es un objeto o es complejo. Por ejemplo,
intArray[1] = 1, objectColumn.objectNumber = 1
. -
Filtros cuyo valor no es un valor literal. Por ejemplo,
intColumn1 = intColumn2
. -
Solo se admiten los tipos de datos compatibles con S3 Select con las limitaciones que se especifican.
-
Especificación de S3 Select en el código
Los siguientes ejemplos muestran cómo especificar S3 Select para CSV usar ScalaSQL, R y PySpark. Puede usar S3 Select for de JSON la misma manera. Para obtener una lista de las opciones, sus valores predeterminados y sus limitaciones, consulte Opciones.
Opciones
Las siguientes opciones están disponibles cuando se utilizan s3selectCSV
y s3selectJSON
. Si no se especifican, se usarán los valores predeterminados.
Opciones con S3select CSV
Opción | Predeterminado | Uso |
---|---|---|
|
|
Indica si se utiliza la compresión. |
|
"," |
Especifica el delimitador de campo. |
|
|
Especifica el carácter de comillas. No se admite especificar una cadena vacía y se produce un error de formato incorrectoXML. |
|
|
Especifica el carácter de escape. |
|
|
|
comentario |
|
Especifica el carácter de comentario. El indicador de comentario no se puede deshabilitar. En otras palabras, no se admite el valor |
|
"" |
Opciones con S3select JSON
Opción | Predeterminado | Uso |
---|---|---|
|
|
Indica si se utiliza la compresión. |
|
"false" |
|