2015-05-01 2 views
0

Я пытаюсь прочитать json-файл из улья.org.openx.data.jsonserde.json.JSONObject нельзя отнести к org.openx.data.jsonserde.json.JSONArray

Я используя JsonSerde API для загрузки JSON, но получаю сообщение об ошибке

... 16 более
Вызванный: java.lang.ClassCastException: org.openx.data.jsonserde.json.JSONObject не может должен быть приведен к org.openx.data.jsonserde.json.JSONArray на org.openx.data.jsonserde.objectinspector.JsonListObjectInspector.getList (JsonListObjectInspector.java:38)
в org.apache.hadoop.hive.serde2.SerDeUtils .buildJSONString (SerDeUtils.java:297)
at org.apache.hadoop.hive.serde2.SerDeUtils.getJSONString (Se rDeUtils.java:197)
на org.apache.hadoop.hive.serde2.DelimitedJSONSerDe.serializeField (DelimitedJSONSerDe.java:60)
в org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe.doSerialize (LazySimpleSerDe. Java: 422)
на org.apache.hadoop.hive.serde2.AbstractEncodingAwareSerDe.serialize (AbstractEncodingAwareSerDe.java:50)
на org.apache.hadoop.hive.ql.exec.DefaultFetchFormatter.convert (DefaultFetchFormatter.java: 71)
на org.apache.hadoop.hive.ql.exec.DefaultFetchFormatter.convert (DefaultFetchFormatter.java:40)
в org.apache.hadoop.hive.ql.exec.ListSinkOperator.processOp (ListSinkOperator.java: 87)

Есть ли у кого-нибудь идеи о том, как это исправить?

ответ

2

Вы пытаетесь обработать массив, но вам предоставляется Object.

В Json:
Объект: {...}
Массив является: [...]

Примеры:
Доступ массива: myArray[0]
Доступ объекта: myObject.myField

Смежные вопросы