Knowledge Center Monthly Newsletter - March 2025
Stay up to date with the latest from the Knowledge Center. See all new and updated Knowledge Center articles published in the last month and re:Post’s top contributors.
¿Cómo puedo solucionar el error «FAILED: NullPointerException Name is null» cuando consulto una tabla en Athena?
Cuando consulto mi tabla de Amazon Athena, aparece el mensaje de error «FAILED: NullPointerException Name is Null».
Breve descripción
Los siguientes mensajes de error son los tipos de error FAILED: NullPointerException que puede recibir.
NullPointerException Name is null
Este error se muestra cuando no se ha definido el atributo TableType para la tabla consultada en el Catálogo de datos de AWS Glue. El atributo TableType define si la tabla es una vista o una tabla externa. Puede definir el atributo con valores como EXTERNAL_TABLE y VIRTUAL_VIEW.
Para ejecutar consultas de DDL, como SHOW CREATE TABLE o MSCK REPAIR TABLE, debe definir el atributo TableType.
También puede aparecer este error si utiliza una plantilla de AWS CloudFormation o la API de AWS Glue y no especifica la propiedad TableType.
java.lang.NullPointerException: Cannot invoke "java.util.Map.entrySet()" because the return value of "org.apache.hadoop.hive.metastore.api.SerDeInfo.getParameters()" is null
Este error aparece cuando los parámetros SerDeInfo no están definidos para la tabla consultada en el Catálogo de datos. Los parámetros SerDeInfo son los pares clave-valor que definen los parámetros de inicialización del SerDe. Puede definir el atributo con el valor "serialization.format": "1". Para ejecutar consultas de DDL, como SHOW CREATE TABLE, debe definir los parámetros del atributo SerDeInfo.
También puede aparecer este error si utiliza una plantilla de CloudFormation o la API de AWS Glue y no especifica el atributo SerDeInfo.
Resolución
Complete los pasos de solución de problemas que mejor se ajusten al mensaje de error que recibió.
Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), consulte Troubleshoot AWS CLI errors. Además, asegúrese de utilizar la versión más reciente de la AWS CLI.
NullPointerException Name is null
Para solucionar este error, realice una o más de las siguientes acciones según su caso de uso.
Adición del atributo durante la creación de la tabla
Al crear la tabla, añada el atributo TableType.
Nota: Si utiliza una instrucción de DDL o un rastreador de AWS Glue para crear la tabla, la propiedad TableType se define automáticamente.
Actualización de la plantilla de CloudFormation
Cuando utilice una plantilla de CloudFormation para crear una tabla de AWS Glue, especifique el atributo TableType en las propiedades TableInput del recurso de tabla de AWS Glue. Establezca TableType en «EXTERNAL_TABLE». Para obtener más información, consulte AWS::Glue::Table TableInput.
Actualización de la llamada a la API de AWS Glue
Cuando utilice la llamada a la API de AWS Glue para crear o actualizar tablas, asegúrese de incluir el parámetro TableType en las propiedades de TableInput. Cuando llame a las operaciones CreateTable o UpdateTable, defina el parámetro TableType en «EXTERNAL_TABLE».
Utilización de la AWS CLI para actualizar la tabla
Para actualizar el atributo TableType para su tabla, ejecute el comando update-table de la AWS CLI. Para ejecutar este comando, debe tener el objeto TableInput, que define la arquitectura de toda la tabla.
Para obtener el objeto TableInput para su tabla, ejecute el comando get-table de la AWS CLI. A continuación, actualice el resultado de este comando tal y como se define en los pasos siguientes:
-
Ejecute en su tabla un comando similar al ejemplo siguiente:
aws glue get-table --catalog-id 1111222233334444 --database doc_example_database --name doc_example_table
Resultado de ejemplo:
{ "Table": { "StorageDescriptor": { "OutputFormat": "org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat", "SortColumns": [], "InputFormat": "org.apache.hadoop.mapred.TextInputFormat", "SerdeInfo": { "SerializationLibrary": "org.apache.hadoop.hive.serde2.OpenCSVSerde", "Parameters": { "serialization.format": "1" } }, "Parameters": { "separatorChar": "," }, "Location": "s3://doc_example_bucket/doc_example_prefix/", "NumberOfBuckets": 0, "StoredAsSubDirectories": false, "Columns": [ { "Type": "int", "Name": "id" }, { "Type": "string", "Name": "name" } ], "Compressed": false }, "UpdateTime": 1620508098.0, "IsRegisteredWithLakeFormation": false, "Name": "doc_example_table", "CreatedBy": "arn:aws:iam::1111222233334444:user/Administrator", "DatabaseName": "doc_example_database", "Owner": "1111222233334444", "Retention": 0, "CreateTime": 1619909955.0, "Description": "tb description" } }
-
En el resultado, elimine los parámetros UpdateTime, IsRegisteredWithLakeFormation, CreatedBy, DatabaseName y CreateTime. AWS Glue no admite estos parámetros.
Si incluye estos parámetros en el atributo TableInput al ejecutar el comando update-table, es posible que se muestren los siguientes errores:"Parameter validation failed:Unknown parameter in TableInput: "UpdateTime", debe ser uno de los siguientes: Name, Description, Owner, LastAccessTime, LastAnalyzedTime, Retention, StorageDescriptor, PartitionKeys, ViewOriginalText, ViewExpandedText, TableType, Parameters"
"Unknown parameter in TableInput: "IsRegisteredWithLakeFormation", debe ser uno de los siguientes: Name, Description, Owner, LastAccessTime, LastAnalyzedTime, Retention, StorageDescriptor, PartitionKeys, ViewOriginalText, ViewExpandedText, TableType, Parameters"
"Unknown parameter in TableInput: "CreatedBy", debe ser uno de los siguientes: Name, Description, Owner, LastAccessTime, LastAnalyzedTime, Retention, StorageDescriptor, PartitionKeys, ViewOriginalText, ViewExpandedText, TableType, Parameters"
"Unknown parameter in TableInput: "DatabaseName", debe ser uno de los siguientes: Name, Description, Owner, LastAccessTime, LastAnalyzedTime, Retention, StorageDescriptor, PartitionKeys, ViewOriginalText, ViewExpandedText, TableType, Parameters"
"Unknown parameter in TableInput: "CreateTime", debe ser uno de los siguientes: Name, Description, Owner, LastAccessTime, LastAnalyzedTime, Retention, StorageDescriptor, PartitionKeys, ViewOriginalText, ViewExpandedText, TableType, Parameters" -
Añada el parámetro "TableType": "EXTERNAL_TABLE" al resultado.
-
Utilice el resultado como parámetro TableInput para ejecutar el siguiente comando:
aws glue update-table --catalog-id 1111222233334444 --database-name doc_example_database --table-input '{ "StorageDescriptor": { "OutputFormat": "org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat", "SortColumns": [], "InputFormat": "org.apache.hadoop.mapred.TextInputFormat", "SerdeInfo": { "SerializationLibrary": "org.apache.hadoop.hive.serde2.OpenCSVSerde", "Parameters": { "serialization.format":"1" } }, "Parameters": { "separatorChar":"," }, "Location": "s3://doc_example_bucket/doc_example_prefix/", "NumberOfBuckets": 0, "StoredAsSubDirectories": false, "Columns": [ { "Type": "int", "Name": "id" }, { "Type": "string", "Name": "name" } ], "Compressed": false }, "Name": "doc_example_table", "TableType": "EXTERNAL_TABLE", "Owner": "1111222233334444", "Retention": 0, "Description": "tb description" }'
Nota: Sustituya las siguientes variables:
doc_example_database por el nombre de su base de datos
doc_example_table por el nombre de su tabla
1111222233334444 por el ID de su cuenta de AWS
s3://doc_example_bucket/doc_example_prefix/ por la ubicación de Amazon Simple Storage Service (Amazon S3) en la que esté guardada la tabla
Tras ejecutar el comando anterior, el parámetro TableType se actualiza y las consultas de DDL se realizan correctamente.
java.lang.NullPointerException: Cannot invoke "java.util.Map.entrySet()" because the return value of "org.apache.hadoop.hive.metastore.api.SerDeInfo.getParameters()" is null
Para solucionar este error, realice una o más de las siguientes acciones según su caso de uso.
Adición de los parámetros SerDeInfo durante la creación de la tabla
Al crear la tabla, añada los parámetros SerDeInfo, como "serialization.format": "1", "field.delim":",".
Actualización de la plantilla de CloudFormation
Cuando utilice una plantilla de CloudFormation para crear una tabla de AWS Glue, especifique los parámetros SerDeInfo. En la sección TableInput del recurso de tabla de Glue, vaya a StorageDescriptor. Seleccione SerDeInfo y, a continuación, Parámetros. Añada {"serialization.format": "1"} como parámetro.
Para obtener más información, consulte AWS::Glue::Table SerdeInfo.
Actualización de la llamada a la API de AWS Glue
Cuando utilice la llamada a la API de AWS Glue para crear o actualizar tablas, incluya los parámetros SerDeInfo en el StorageDescriptor de su TableInput. Establezca el campo Parámetros de SerDeInfo en {"serialization.format": 1.
Este parámetro se usa cuando llama a operaciones como CreateTable o UpdateTable. Para obtener más información, consulte Estructura de StorageDescriptor.
Utilización de la consola de AWS Glue para actualizar la tabla
Para actualizar las propiedades de la tabla en el Catálogo de datos, siga estos pasos:
- Abra la consola de AWS Glue.
- En el panel de navegación, en Catálogo de datos, seleccione Tablas.
- Seleccione la tabla que desee actualizar.
- Elija Acción y, a continuación, Editar tabla.
- En la sección Parámetros SerDe, elija Añadir.
- Para Clave, escriba "serialization.format" y para Valor escriba "1".
- Seleccione Guardar.
Utilización de la AWS CLI para actualizar la tabla
Para actualizar los parámetros SerDeInfo para su tabla, ejecute el comando update-table de la AWS CLI. Para ejecutar este comando, debe tener el objeto TableInput, que define la arquitectura de toda la tabla.
Para obtener el objeto TableInput para su tabla, ejecute el comando get-table de la AWS CLI. A continuación, actualice el resultado de este comando para incluir los parámetros SerDeInfo.
Información relacionada

Contenido relevante
- preguntada hace un meslg...
- preguntada hace 22 díaslg...
- Como solucionar el error: Supplied Policy document is breaching Cloudwatch Logs policy length limit.Respuesta aceptadapreguntada hace 2 meseslg...
- preguntada hace 3 meseslg...
- preguntada hace un meslg...
- ¿Cómo puedo solucionar el error «GENERIC_INTERNAL_ERROR» cuando consulto una tabla en Amazon Athena?OFICIAL DE AWSActualizada hace 2 años
- OFICIAL DE AWSActualizada hace un año
- OFICIAL DE AWSActualizada hace un año