2016-10-14 3 views
0

Ich habe Tabelle aus SQL Server in Hive importiert, während Float-Feld von SQL Server in Double in Hive konvertiert wird. Und die wenigen Werte werden mit exponentiellem Format geladen.Exponentielle Werte werden geladen in Hive-Tabelle auf Sqoop Import

Ex.

Wert aus Tabelle = 10488666,6666667

Value loaded into Hive= 1.0488666666666666E7 

Auch gibt es ein weiteres Problem für gleiches Feld beobachtet, wo zusätzliche Präzisierungen hinzugefügt zu werden,

Ex. Wert aus Tabelle = 3688666.66666667

 Value from Hive table= 3688666.6666666665 

Kann mir jemand vorschlagen, wie dies loszuwerden und die Werte zu laden, wie es aus RDBMS ist zu Hive, da sie einfach sein wird, in hive abzufragen.

Antwort

0

Verlassen Sie sich nicht auf das, was Sie auf JDBC-Client, Hive-Shell sehen.

Siehe tatsächliche Daten in HDFS Ihrer Strukturtabelle.

show create table tablename 

überprüfen Lage Schlüssel und hdfs und prüfen Sie aktuelle Daten gehen Um dies zu überprüfen gehen Shell und Feuer liedern. Es sollte gleich sein.

+0

ja, HDFS enthält auch exponentielle Werte..so meine Frage ist, wie die Werte zu speichern, wie es in HDFS ist? –

+0

@ Priya.A Sind Ihre Werte in SQL Server und HDFS nicht identisch? –

+0

@ Priya.A Wie sehen Sie Daten in SQL Server? –

0

Ich war in der Vergangenheit mit einem solchen Problem konfrontiert, ein einfacher Ausweg wäre "String" in der Hive-Tabelle. Das System macht zusätzliche Anstrengungen, um im laufenden Betrieb zu konvertieren, jedoch sollte es vernachlässigbar sein.

+0

Ich habe das versucht, aber es konnte mein Problem nicht lösen :( –

+0

kann ich wissen, welches Werkzeug Sie für die Übertragung verwenden - sqoop? –

+0

ja.m mit sqoop –