In diesem Kapitel wird erklärt, wie Sie eine Tabelle zu erstellen und wie Sie Daten in sie einfügen. Die Konventionen von Erstellung einer Tabelle in HIVE ist ganz ähnlich wie das Erstellen einer Tabelle mit SQL.
Erstellen tabellen ist eine Anweisung, verwendet erstellen um eine Tabelle in Hive. Die Syntax und die beispiels weise sind wie folgt:
CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.] table_name [(col_name data_type [COMMENT col_comment], ...)] [COMMENT table_comment] [ROW FORMAT row_format] [STORED AS file_format]
Nehmen wir an, Sie benötigen zu erstellen eine Tabelle mit dem Namen Mitarbeiter mit Hilfe CREATE TABLE Erklärung. Der folgenden Tabelle liste die Felder und deren Datentypen in Mitarbeiter Tabelle sind:
Sr.No | Feldname | Datentyp |
---|---|---|
1 | Eid | int |
2 | Name | Saite |
3 | Gehalts | Float |
4 | Benennung | Saite |
Die folgenden Daten ist ein Kommentar, Reihe formatiert Bereichen wie Feld Terminator, Terminator-Linien, und gespeicherte Dateityp.
COMMENT ‘Employee details’ FIELDS TERMINATED BY ‘\t’ LINES TERMINATED BY ‘\n’ STORED IN TEXT FILE
Die folgende Abfrage erstellt eine Tabelle namens Mitarbeiter mit den oben genannten Daten.
hive> CREATE TABLE IF NOT EXISTS employee ( eid int, name String, > salary String, destination String) > COMMENT ‘Employee details’ > ROW FORMAT DELIMITED > FIELDS TERMINATED BY ‘\t’ > LINES TERMINATED BY ‘\n’ > STORED AS TEXTFILE;
Wenn Sie hinzufügen die Option IF NOT EXISTS, Hive ignoriert die Anweisung, wenn die Tabelle bereits vorhanden.
Auf erfolgreicher Erstellung Tisch, erhalten Sie die folgende Antwort zu sehen:
OK Time taken: 5.905 seconds hive>
Der JDBC-Programm, um eine Tabelle zu erstellen ist gegeben beispiel.
import java.sql.SQLException; import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; import java.sql.DriverManager; public class HiveCreateTable { private static String driverName = "org.apache.hadoop.hive.jdbc.HiveDriver"; public static void main(String[] args) throws SQLException { // Register driver and create driver instance Class.forName(driverName); // get connection Connection con = DriverManager.getConnection("jdbc:hive://localhost:10000/userdb", "", ""); // create statement Statement stmt = con.createStatement(); // execute statement stmt.executeQuery("CREATE TABLE IF NOT EXISTS " +" employee ( eid int, name String, " +" salary String, destignation String)" +" COMMENT ‘Employee details’" +" ROW FORMAT DELIMITED" +" FIELDS TERMINATED BY ‘\t’" +" LINES TERMINATED BY ‘\n’" +" STORED AS TEXTFILE;"); System.out.println(“ Table employee created.”); con.close(); } }
Speichern Sie das Programm in einer Datei namens HiveCreateDb.java. Die folgenden Befehle werden verwendet, um zu kompilieren und das Programm auszuführen.
$ javac HiveCreateDb.java $ java HiveCreateDb
Table employee created.
Allgemeinen nach dem Erstellen einer Tabelle in SQL, können wir Daten mit der Anweisung Einfügen. Aber in Hive, können wir Daten mit der Lastdaten Aussage einfügen.
Während Einfügen von Daten in Hive, ist es besser, Lastdaten verwenden, um Groß Datensätze speichern. Es gibt zwei Möglichkeiten, um Daten zu laden: Die eine ist aus dem lokalen Dateisystem und die zweite ist von Hadoop-Dateisystem
Die Syntax für Lastdaten ist wie folgt:
LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]
Wir werden einfügen die folgenden Daten in die Tabelle. Es ist eine Textdatei mit dem Namen sample.txt in / home / user Verzeichnis.
1201 Gopal 45000 Technical manager 1202 Manisha 45000 Proof reader 1203 Masthanvali 40000 Technical writer 1204 Kiran 40000 Hr Admin 1205 Kranthi 30000 Op Admin
Die folgende Abfrage lädt den angegebenen Text in die Tabelle.
hive> LOAD DATA LOCAL INPATH '/home/user/sample.txt' > OVERWRITE INTO TABLE employee;
auf erfolgreichem herunterladen, erhalten Sie die folgende Antwort zu sehen:
OK Time taken: 15.905 seconds hive>
Da unten ist die JDBC-Programm, um die Eingabe in die Tabelle zu laden.
import java.sql.SQLException; import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; import java.sql.DriverManager; public class HiveLoadData { private static String driverName = "org.apache.hadoop.hive.jdbc.HiveDriver"; public static void main(String[] args) throws SQLException { // Register driver and create driver instance Class.forName(driverName); // get connection Connection con = DriverManager.getConnection("jdbc:hive://localhost:10000/userdb", "", ""); // create statement Statement stmt = con.createStatement(); // execute statement stmt.executeQuery("LOAD DATA LOCAL INPATH '/home/user/sample.txt'" + "OVERWRITE INTO TABLE employee;"); System.out.println("Load Data into employee successful"); con.close(); } }
Speichern Sie das Programm in einer Datei namens HiveLoadData.java. Verwenden Sie die folgenden Befehle zu kompilieren und das Programm auszuführen.
$ javac HiveLoadData.java $ java HiveLoadData
Load Data into employee successful