我在hdfs路径中有一组csv文件,并从这些文件中创建了一个外部配置单元表,比如表a。因为有些条目是多余的,所以我尝试基于表a创建另一个配置单元表,比如表b,它有不同的记录。我能够将表\u b创建为非外部表(hive仓库)。我想知道是否可以将表\u b创建为外部表?如果这是可能的,它是否会从表\u a复制记录并在指定路径上创建自己的表\u b存储(最好也是csv)?
bvk5enib1#
我假设您希望从“未清理”表中选择不同的数据并插入到“已清理”表中。
CREATE EXTERNAL TABLE `uncleaned`( `a` int, `b` string, `c` string, `d` string, `e` bigint ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' LOCATION '/external/uncleaned'
创建另一个表,它可以是外部的,也可以不是(无所谓)。
CREATE EXTERNAL TABLE `cleaned`( `a` int, `b` string, `c` string, `d` string, `e` bigint ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' LOCATION '/external/cleaned'
从第一个表中读取,您可以通过
insert overwrite table cleaned select distinct a,b,c,d,e from uncleaned;
1条答案
按热度按时间bvk5enib1#
我假设您希望从“未清理”表中选择不同的数据并插入到“已清理”表中。
创建另一个表,它可以是外部的,也可以不是(无所谓)。
从第一个表中读取,您可以通过