簡體   English   中英

使用SQOOP將數據從HDFS復制到配置單元

[英]Copying data from HDFS to hive using SQOOP

我想將數據從HDFS復制到hive表。 我嘗試下面的代碼,但它不會引發任何錯誤,並且數據也不會在提到的配置單元表中復制。 下面是我的代碼:

sqoop import --connect jdbc:mysql://localhost/sampleOne \
--username root \
--password root \
--external-table-dir "/WithFields" \
--hive-import \
--hive-table "sampleone.customers"   

其中sampleone是hive中的數據庫,而customers是hive中新創建的表,-- --external-table-dir是要在hive表中加載數據的HDFS路徑。 我在上面的代碼中還缺少什么?

如果數據在HDFS ,則不需要Sqoop即可填充Hive表。 步驟如下:

這是HDFS中的數據

# hadoop fs -ls /example_hive/country
/example_hive/country/country1.csv

# hadoop fs -cat /example_hive/country/*
1,USA
2,Canada
3,USA
4,Brazil
5,Brazil
6,USA
7,Canada

這是Hive表創建DDL

CREATE TABLE sampleone.customers
(
  id int, 
  country string
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n';

驗證配置單元表為空

hive (sampleone)> select * from sampleone.customers;
<no rows>

加載配置單元表

hive (sampleone)> LOAD DATA INPATH '/example_hive/country' INTO TABLE sampleone.customers;

驗證Hive表中是否有數據

hive (sampleone)> select * from sampleone.customers;
1   USA
2   Canada
3   USA
4   Brazil
5   Brazil
6   USA
7   Canada

注意 :此方法會將數據從HDFS上的/example_hive/country位置移動到支持該表的Hive倉庫目錄(該目錄又將在HDFS )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM