1. 程式人生 > >Hive-匯入資料

Hive-匯入資料

將本地檔案匯入到hive表中

將本地檔案匯入到hive表中

load data local inpath '/home/data/student01.txt' into table t3;

將某個資料夾下的所有檔案匯入到hive表中

load data local inpath '/home/data/hive/' into table t3;

將某個資料夾下的所有檔案匯入到hive表中,並且覆蓋原來的資料

load data local inpath '/home/data/hive/' overwrite into table t3;

將HDFS中的檔案匯入到hive表中

將HDFS中的檔案匯入到hive表中,用法和前面的類似,只是少了"local"這個單詞,例如:

load data inpath '/student02.txt' into table t3;

將資料匯入到分割槽表

load data local inpath '/home/data/data01.txt' into table partition_table partition(gender='M');

操作MySQL資料庫中的資料

使用sqoop將mysql資料庫匯入到hdfs,

sqoop import --connect jdbc:mysql://localhost/lzc --username root --password root --table student --columns 'id,name,password' -m 1 --target-dir '/lzc'

使用sqoop匯入mysql資料到hive,預設會儲存在default下

sqoop import --hive-import --connect jdbc:mysql://localhost/lzc --username root --password root --table student --columns 'id,name,password' -m 1

用法

--hive-import    資料匯入到hive中


--connect jdbc:mysql://localhost/db_name --username root --password root       連線資料庫並指定哪個資料庫


--table db_name      指定表名


--columns 'column_1,column_2,column_3,...'     獲取哪些列


--hive-database hive_database_name     指定hive資料庫名字


--create-hive-table     自動建立表


--hive-table hive_table_name     指定hive表名


--hive-overwrite     引數是覆蓋資料


-m 1     使用一個MapReduce作業程序


--fields-terminated-by '  '     指定列與列之間的間隔符


--where 'name="lizhencheng"'     條件語句


--target-dir '/lzc'     指定HDFS路徑


--query "select * from student where $CONDITIONS" -target-dir '/user/hive/warehouse'     查詢,一定要指定HDFS路徑


--query "select * from student where  id >= 3 and $CONDITIONS" -target-dir '/user/hive/warehouse'     查詢一定要指定HDFS路徑


--split-by 引數    資料庫表沒有主鍵時,需要指定

 

where語句

sqoop import --hive-import --connect jdbc:mysql://localhost/lzc --username root --password root  --table student --columns 'id,name,password' --where 'name="lizhencheng"' --hive-table student00 -m 1

查詢語句

sqoop import --hive-import --connect jdbc:mysql://localhost/lzc --username root --password root  --query 'select * from student where  $CONDITIONS' --target-dir '/user/hive/warehouse/' -m 1 --hive-table student01
sqoop import --hive-import --connect jdbc:mysql://localhost/lzc --username root --password root  --query 'select * from student where id >= 3 and $CONDITIONS' --target-dir '/user/hive/warehouse/student3' -m 1 --hive-table student03
sqoop import --hive-import --connect jdbc:mysql://localhost/lzc --username root --password root  --query 'select * from student where id >= 3 and name = "lizhencheng" and $CONDITIONS' --target-dir '/user/hive/warehouse/student4' -m 1 --hive-table student04

將HDFS(Hive)中的資料匯入到MySQL

sqoop export --connect jdbc:mysql://localhost/lzc --username root --password root  --table person --export-dir /user/hive/warehouse/student/part-m-00000 --columns 'id,name,password' --fields-terminated-by '\t' -m 1