在Greenplum或DeepGreen中,使用外部表访问Hive表的数据,并且文件数据的列分隔符是Hive默认的方式'\001'。
1. 查看数据(Hive默认列分隔符实际打印不可见,但是使用vi编辑器时,显示^A,可以通过先按Ctrl V ,再按A来输出)
[gpadmin@JSZ ~]$ cat ok.txt
1^ASpark2^AHadoop
2. 在Hive中创建表,包括并加载数据
hive> create table ok(id int,name string) row format delimited fields terminated by '\001' stored as textfile;hive> load data local inpath '/home/gpadmin/ok.txt' into table ok;
3. 在GP中创建外部表,并通过gphdfs协议读取HDFS上的数据文件
create external table ok (id int,name text) location ('gphdfs://JSZ:8020/user/hive/warehouse/ok') format 'TEXT' (DELIMITER E'\001');
注释:对于分隔符为多个的,需要使用E来指定。
4. 在GP中查看外部表数据
zhangyundb=# select * from ok;
select co id | name
----+--------
1 | Spark
2 | Hadoop