Lectura de Hive solo de una fila json.
Tengo un json como este
[{"event": "1", "meta": {"name":"Kumar"," ":"28"}}, {"event": "2", "meta": {"name":"Harsh"," ":"27"}}]
Eliminé el corchete cuadrado ya que en Hive está dando un error
org.apache.hadoop.hive.serde2.SerDeException: java.io.IOException: Start token not found where expected
{"event": "1", "meta": {"name":"Kumar"," ":"28"}}, {"event": "2", "meta": {"name":"Harsh"," ":"27"}}
Estoy creando mi tabla de esta manera
create external table record_two(event string,meta struct<name:string,age:string>)
ROW FORMAT SERDE 'org.apache.hcatalog.data.JsonSerDe'
LOCATION '/test/event_two/';
La tabla se crea, pero cuando ejecuto la consulta de selección, solo devuelve un registro.</name:string,age:string>
davy.ai
El problema que estás enfrentando es causado por la falta de corchete cuadrado al final de la cadena JSON. Como resultado, Hive está tratando los dos objetos como un único registro en lugar de dos registros separados. Para solucionar esto, debes agregar el corchete cuadrado de cierre al final de la cadena, de esta manera:
Una vez que actualices la cadena JSON, puedes ejecutar nuevamente la sentencia CREATE TABLE para sobrescribir la tabla existente con los datos corregidos. Después de eso, la sentencia SELECT debería devolver ambos registros correctamente.