Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop 从外部表向外部表插入数据_Hadoop_Mapreduce_Hive_External Tables - Fatal编程技术网

Hadoop 从外部表向外部表插入数据

Hadoop 从外部表向外部表插入数据,hadoop,mapreduce,hive,external-tables,Hadoop,Mapreduce,Hive,External Tables,从外部表1向外部表2插入数据时,外部表2的数据存储在/user/hive/warehouse/db name/table name/中,但作为外部表,它不应将数据存储在仓库目录中,对吗? 我们是否应该指定将数据存储到外部表的位置?我认为您在创建外部表2时没有指定位置。尝试使用下面的语法 CREATE EXTERNAL TABLE [db_name.]table_name [(col_name data_type [COMMENT col_comment], ...)] [PARTITIO

从外部表1向外部表2插入数据时,外部表2的数据存储在
/user/hive/warehouse/db name/table name/
中,但作为外部表,它不应将数据存储在仓库目录中,对吗?

我们是否应该指定将数据存储到外部表的位置?

我认为您在创建外部表2时没有指定位置。尝试使用下面的语法

CREATE EXTERNAL TABLE [db_name.]table_name
  [(col_name data_type [COMMENT col_comment], ...)]
  [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)]
  [CLUSTERED BY (col_name, col_name, ...) [SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS]
  [
   [ROW FORMAT row_format] 
   [STORED AS file_format]
     | STORED BY 'storage.handler.class.name' [WITH SERDEPROPERTIES (...)]
  ]
  [LOCATION hdfs_path]
  [TBLPROPERTIES (property_name=property_value, ...)]
  [AS select_statement]; 

我认为您创建了外部表2,但没有指定位置。尝试使用下面的语法

CREATE EXTERNAL TABLE [db_name.]table_name
  [(col_name data_type [COMMENT col_comment], ...)]
  [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)]
  [CLUSTERED BY (col_name, col_name, ...) [SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS]
  [
   [ROW FORMAT row_format] 
   [STORED AS file_format]
     | STORED BY 'storage.handler.class.name' [WITH SERDEPROPERTIES (...)]
  ]
  [LOCATION hdfs_path]
  [TBLPROPERTIES (property_name=property_value, ...)]
  [AS select_statement]; 

在配置单元中创建的任何表,无论其内部或外部文件是否移动到“/user/hive/warehouse”或在中指定的任何位置
hive.metastore.warehouse.dir
在hive-site.xml中


创建外部表-防止有人意外删除表时数据丢失。尝试创建2个外部表并浏览文件系统。您可以轻松理解这个概念。

在配置单元中创建的任何表,无论其内部或外部文件是否移动到“/user/hive/warehouse”或您在中指定的任何位置
hive.metastore.warehouse.dir
在hive-site.xml中


创建外部表-防止有人意外删除表时数据丢失。尝试创建2个外部表并浏览文件系统。您可以很容易地理解这个概念。

是的,您必须在创建外部表时提及位置。 你可以简单地用下面的方法来做

创建表table1和table2:

CREATE EXTERNAL TABLE table1(col1 INT, col2 BIGINT,col3 STRING)
 ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
 STORED AS TEXTFILE
 LOCATION '<hdfs_location1>';

CREATE EXTERNAL TABLE table2(col21 INT, col22 BIGINT,col23 STRING)
     ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
     STORED AS TEXTFILE
     LOCATION '<hdfs_location2>';
它将数据从表1复制到表2的hdfs位置


请注意,外部表不支持(按选择创建表)。

是的,在创建外部表时必须提及位置。 你可以简单地用下面的方法来做

创建表table1和table2:

CREATE EXTERNAL TABLE table1(col1 INT, col2 BIGINT,col3 STRING)
 ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
 STORED AS TEXTFILE
 LOCATION '<hdfs_location1>';

CREATE EXTERNAL TABLE table2(col21 INT, col22 BIGINT,col23 STRING)
     ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
     STORED AS TEXTFILE
     LOCATION '<hdfs_location2>';
它将数据从表1复制到表2的hdfs位置

请注意,外部表不支持(以选择方式创建表)。

(以选择方式创建表)不支持外部表。(以选择方式创建表)不支持外部表。