将数据从hdfs加载到kudu

soat7uwm  于 2021-06-03  发布在  Sqoop
关注(0)|答案(3)|浏览(657)

我试图将数据加载到kudu表,但得到一个奇怪的结果。
在impala控制台中,我使用sqoop导入的四个hdfs文件创建了一个外部表:

drop table if exists hdfs_datedim;
create external table hdfs_datedim
( ... )
row format
 delimited fields terminated by ','
location '/user/me/DATEDIM';

select count(*)告诉我存在很多行。查询时数据看起来不错。
我使用标准的select-into来复制结果

INSERT INTO impala_kudu.DATEDIM
SELECT * FROM hdfs_datedim;

select count(*)告诉我impala_kudu.datedim有四行(hdfs中的文件数,而不是表中的行数)。
有什么想法吗?

yduiuuwa

yduiuuwa1#

如果您在hdfs中有(csv/avro/parquet)格式的数据,那么您可以使用下面的命令将文件导入kudu表。
先决条件:兼容版本(1.6或更高版本)的kudu jar

spark2-submit  --master yarn/local  --class org.apache.kudu.spark.tools.ImportExportFiles <path of kudu jar>/kudu-spark2-tools_2.11-1.6.0.jar --operation=import --format=<parquet/avro/csv> --master-addrs=<kudu master host>:<port number>  --path=<hdfs path for data> --table-name=impala::<table name>
cbwuti44

cbwuti442#

目前sqoop还不支持kudu。您可以导入到hdfs,然后使用impala将数据写入kudu。

qncylg1j

qncylg1j3#

sqoop创建的数据被隐藏在一系列格式不好的csv文件之下。由于平面文件中的数据,导入失败,没有出现错误。注意日期格式和字符串中嵌入分隔符的文本字符串。

相关问题