Hive - Tabelle Erstellen



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 Anweisung

Erstellen tabellen ist eine Anweisung, verwendet erstellen um eine Tabelle in Hive. Die Syntax und die beispiels weise sind wie folgt:

Syntax

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]

Beispiel

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>

JDBC Program

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

Ausgabe

Table employee created.

Lastdaten Aussage

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

Syntax

Die Syntax für Lastdaten ist wie folgt:

LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename 
[PARTITION (partcol1=val1, partcol2=val2 ...)]
  • LOCAL ist Kennung, um den lokalen Pfad angeben. Es ist optional.
  • OVERWRTIE ist optional, um die Daten in der Tabelle zu überschreiben.
  • PARTITION ist optional.

Beispiel

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>

JDBC Program

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

Ausgabe:

Load Data into employee successful
Advertisements