آموزش Hive

آموزش Hive – تغییر جدول

در این بخش نحوه ی تغییر خصیصه های (attributes) جدول، مثل تغییر نام جدول، تغییر نام ستون های جدول، اضافه کردن ستون و حذف یا جایگزینی ستون ها را توضیح میدیم.

عبارتِ Alter Table

این عبارت برای تغییر جدول در Hive به کار میره.

شکل دستوری

شکل دستوری این عبارت بر اساس خصیصه هایی که می خواین تغییر بدین فرق می کنه و می تواند به شکل های زیر باشه:

ALTER TABLE name RENAME TO new_name
ALTER TABLE name ADD COLUMNS (col_spec[, col_spec ...])
ALTER TABLE name DROP [COLUMN] column_name
ALTER TABLE name CHANGE column_name new_name new_type
ALTER TABLE name REPLACE COLUMNS (col_spec[, col_spec ...])

عبارتِ Rename To…

کوئری زیر نام جدولِ employee را به emp تغییر میده.

hive> ALTER TABLE employee RENAME TO emp;

برنامه ی JDBC

در ادامه مثالی از برنامه ی JDBC را برای تغییر نام یک جدول، مشاهده می کنین:

import java.sql.SQLException;
import java.sql.Connection;
import java.sql.ResultSet; 
import java.sql.Statement;
import java.sql.DriverManager;

public class HiveAlterRenameTo {
   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("ALTER TABLE employee RENAME TO emp;");
      System.out.println("Table Renamed Successfully");
      con.close();
   }
}

برنامه را در فایلی به نامِ HiveAlterRenameTo.java ذخیره کنین. در ادامه دستوراتی برای کامپایل و اجرای این برنامه مشاهده می کنین.

$ javac HiveAlterRenameTo.java
$ java HiveAlterRenameTo

خروجی

Table renamed successfully.

عبارتِ Change

جدول زیر حاوی فیلد های جدولِ employee است؛ فیلدهایی که قراره تغییر کنن را بصورت برجسته (bold) نشان شدن.

نام فیلد

نوع داده ای قبل از تغییر

نام فیلد تغییر یافته

نوع داده ای بعد از تغییر

eid

int

eid

int

name

String

ename

String

salary

Float

salary

Double

designation

String

designation

String

کوئری زیر نام ستونِ name و ستونِ data را بر اساس اطلاعات جدول بالا تغییر میده:

hive> ALTER TABLE employee CHANGE name ename String;
hive> ALTER TABLE employee CHANGE salary salary Double;

برنامه ی JDBC

در ادامه مثالی از برنامه ی JDBC را برای تغییر یک ستون، مشاهده می کنین:

import java.sql.SQLException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.DriverManager;

public class HiveAlterChangeColumn {
   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("ALTER TABLE employee CHANGE name ename String;");
      stmt.executeQuery("ALTER TABLE employee CHANGE salary salary Double;");
      
      System.out.println("Change column successful.");
      con.close();
   }
}

برنامه را در فایلی به نامِ HiveAlterChangeColumn.java ذخیره کنین. در ادامه دستوراتی برای کامپایل و اجرای این برنامه مشاهده می کنین.

$ javac HiveAlterChangeColumn.java
$ java HiveAlterChangeColumn

خروجی

Change column successful.

عبارتِ Add Columns

کوئری زیر ستونی به نامِ dept به جدولِ employee اضافه می کنه.

hive> ALTER TABLE employee ADD COLUMNS ( 
dept STRING COMMENT 'Department name');

برنامه ی JDBC

در ادامه مثالی از برنامه ی JDBC را برای اضافه کردن یک ستون به جدول، مشاهده می کنین:

import java.sql.SQLException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.DriverManager;

public class HiveAlterAddColumn {
   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("ALTER TABLE employee ADD COLUMNS " + " (dept STRING COMMENT 'Department name');");
      System.out.prinln("Add column successful.");
      
      con.close();
   }
}

برنامه را در فایلی به نامِ HiveAlterAddColumn.java ذخیره کنین. در ادامه دستوراتی برای کامپایل و اجرای این برنامه مشاهده می کنین.

$ javac HiveAlterAddColumn.java
$ java HiveAlterAddColumn

خروجی

Add column successful.

عبارتِ Replace

کوئری زیر تمام ستون های جدولِ employee را حذف کرده و آن ها را با ستون هایِ emp و name جایگزین می کنه:

hive> ALTER TABLE employee REPLACE COLUMNS ( 
eid INT empid Int, 
ename STRING name String);

برنامه ی JDBC

در ادامه مثالی از برنامه ی JDBC را برای جایگزین کردن ستونِ eid با empid و جایگزین کردن ستونِ ename با name مشاهده می کنین:

import java.sql.SQLException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.DriverManager;

public class HiveAlterReplaceColumn {

   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("ALTER TABLE employee REPLACE COLUMNS "
         +" (eid INT empid Int,"
         +" ename STRING name String);");
         
      System.out.println(" Replace column successful");
      con.close();
   }
}

برنامه را در فایلی به نامِ HiveAlterReplaceColumn.java ذخیره کنین. در ادامه دستوراتی برای کامپایل و اجرای این برنامه مشاهده می کنین.

$ javac HiveAlterReplaceColumn.java
$ java HiveAlterReplaceColumn

خروجی

Replace column successful.
در صورتی که سوال و یا نظری دارید، از بخش نظرات با ما در میان بگذارید.

خبـرنــامه

Newsletters

در خبــرنـامه سافت اسکیل عضو شویــد تا جدیدترین هـای سایت را بلافاصله در ایمیل خـود دریافت کنیـد

شما چه نظر و یا سوالی درباره این نوشته دارید؟

مبحث آموزشی

آموزش Hive

Learn Hive

پرســیدن سؤال جدید

سؤال های تخصصی خود را از ما بپرسید

دنبال کردن تلگرام کانال سافت اسکیل

https://telegram.me/softskill_ir

عملیات کاربران

خبـرنــامه

Newsletters

در خبــرنـامه سافت اسکیل عضو شویــد تا جدیدترین هـای سایت را بلافاصله در ایمیل خـود دریافت کنیـد

کلیک کنید و سوالات خود را از ما بپرسید
لطفا فرم سوال را پر کنید

سوال شما با موفقیت ثبت شد. برای اینکه بتوانیم به شما اطلاع رسانی کنیم، موارد زیر را وارد کنید:

لطفا چند لحظه منتظر بمانید ...