2012-04-11 3 views

Antwort

4
  1. seit zwei Paket sowohl unter dem Spezifizierer serde2, ich denke, beide sind zur Zeit in
  2. Typeinfo speichert Informationen eines Typs zu verwenden, und jeder Typ mit genau einem Objekt um es zu repräsentieren. Daher ist TypeInfo nur eine schreibgeschützte Informationsdeponie mit dem Objekttyp (Kategorie, Typname usw.).
  3. Hive verfügt über mehrere speicherinterne Datenformate für einen bestimmten Typ (z. B. Integer: Integer, IntWritable und LazyInteger). Daten werden in Objekt und Format/Operationen im Objektinspektor gespeichert. Ein Datenobjekt und ein Objektinspektor stellen also eine Dateneinheit dar. Es fühlt sich an, als ob Sie das Objekt deserialisieren können, indem Sie die von Objektinspektor bereitgestellten Informationen verwenden.
+0

Ja, so verstehe ich es jetzt auch. TypeInfo steht für "Hive-Typen", während ObjectInspectors für verschiedene Darstellungen "(De-) Serializer" sind. Vielen Dank! –

0

ObjectInspectors werden verwendet, um ein Objekt serialisieren, wie man annimmt, ist ein JSON serde und unter Verwendung einer JSON Bibliothek Erstellen Java-Objekte in JSON und umgekehrt, dann wird die Hive Objekt Sie erhalten, ist eine interne Darstellung von Zeile zu konvertieren, Dies muss in ein Java-Objekt konvertiert werden, das weiter in JSON konvertiert wird. Für die Konvertierung von Hive zu JAVA benötigen wir ObjectInspectors zB ListObjectInspector.

In ähnlicher Weise konvertieren Sie bei der Deserialisierung ein JSON in ein Hive-Zeilenobjekt, dafür verwenden wir die Klasse TypeInfo, zB ListTypeInfo.