Hive DML(データのインポートとエクスポート)
Hive Dml Data Import
DML
DML:データ操作言語
テーブルにデータをロードします
文法
LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]
データをローカルにロードする
LOAD DATA LOCAL INPATH '/home/hadoop/data/dept.txt' INTO TABLE ruoze_dept
上書きを使用してデータをロードする
データをロードするときに、overwiteキーワードが追加されていない場合は繰り返されます。
したがって、一般的に作業では、データをロードするときに上書きして追加する必要があります
LOAD DATA LOCAL INPATH '/home/hadoop/data/dept.txt' OVERWRITE INTO TABLE ruoze_dept
hdfsからデータを読み込んでいます
hdfsからデータをロードするローカルのその他の一貫性のあるものを削除する必要があります
LOAD DATA INPATH '/data/dept.txt' OVERWRITE INTO TABLE ruoze_dept
hdfsでファイルを表示する
ハイブでデータを表示する
ここで、hdfsからデータをロードする場合、2回目の実行時にエラーが発生することに注意してください。
エラーログプロンプトファイルが存在しません。hdfsを表示してください
案の定、ここで理解できます。ハイブの内部テーブルのメタデータ情報とデータはハイブ自体によって管理されているため、hdfsからデータを読み込んだ後、hdfsのディレクトリをハイブに移動します。データベースに対応するデータウェアハウス
クエリステートメントに従ってデータを挿入します
INSERT OVERWRITE TABLE tablename1 [PARTITION (partcol1=val1, partcol2=val2 ...) [IF NOT EXISTS]] select_statement1 FROM from_statement INSERT INTO TABLE tablename1 [PARTITION (partcol1=val1, partcol2=val2 ...)] select_statement1 FROM from_statement
INSERT OVERWRITE TABLE ruoze_dept_test select deptno ,dname ,loc from ruoze_dept
データを挿入できない順序は間違ってはならず、フィールドの数は同じでなければならないことに注意してください。
ハイブからデータを書き込む
INSERT OVERWRITE [LOCAL] DIRECTORY directory1 [ROW FORMAT row_format] [STORED AS file_format] (Note: Only available starting with Hive 0.11.0) SELECT ... FROM ...
エクスポートステートメントを実行します
INSERT OVERWRITE LOCAL DIRECTORY '/home/hadoop/data/hive_test' ROW FORMAT DELIMITED FIELDS TERMINATED BY ' ' SELECT empno,ename FROM ruoze_emp
結果を見る