Impala中外部(external)表即数据已经存在于HDFS上的一组文件里,只需要把Impala表指向包含这些文件的目录即可。
语句:
--创建数据库testexternal create database testexternal; --使用数据库testexternal use testexternal; --删除可能存在的externaltemp1表 drop table if exists externaltemp1; --创建externaltemp1表 create external table externaltemp1 ( c_col1 int, c_col2 string c_col3 string, c_col4 int, c_col5 string ) --指明列之间的分隔符为'|' row format delimited fields terminated by '|' --指明数据在HDFS中的目录位置 location '/tmp/testexternal/externaltemp1';目前Impala的shell命令行要求交互的命令必须是单行的,故可以将上述命令放置在一个sql文件里,使用-f选项作为脚本运行。比如将上述命令放置到externaltemp1.sql文件中,执行如下语句:
impala-shell -i localhost -f externaltemp1.sql