Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.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 使用格式serde和额外的列配置单元创建外部表_Hadoop_Hive - Fatal编程技术网

Hadoop 使用格式serde和额外的列配置单元创建外部表

Hadoop 使用格式serde和额外的列配置单元创建外部表,hadoop,hive,Hadoop,Hive,我正在尝试将一个txt文件导入到配置单元中带有额外列的外部表中,如下所示: CREATE EXTERNAL TABLE IF NOT EXISTS bs.tbl_bt( tp_registro string, seq string, num_a string, dt_chamada string, hr_chamada string, num_b string, pt_interconect string, dur_rel_chamada string, dur_tar_chamada str

我正在尝试将一个txt文件导入到配置单元中带有额外列的外部表中,如下所示:


CREATE EXTERNAL TABLE IF NOT EXISTS bs.tbl_bt(
tp_registro string,
seq string,
num_a string,
dt_chamada string,
hr_chamada string,
num_b string,
pt_interconect string,
dur_rel_chamada string,
dur_tar_chamada string,
tp_servico string,
vl_liq_chamada string,
vl_brt_chamada string,
reserva string,
'${hiveconf:tez.task.operadora}' as operadora string)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe'
WITH SERDEPROPERTIES (input.regex = (.{1})(.{10})(.{21})(.{8})(.{6})(.{20})(.{10})(.{7})(.{7})(.{2})(.{11})(.{11})(.{29}).*)
STORED AS TEXTFILE
LOCATION '/gr/Fi/B/${hiveconf:tez.task.operadora}';

我做错了什么?

定义列时,配置单元DDL不包括AS

CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name    -- (Note: TEMPORARY available in Hive 0.14.0 and later)
 [(col_name data_type [column_constraint_specification] [COMMENT col_comment], ... [constraint_specification])] 
所以,试着

'${hiveconf:tez.task.operadora}' STRING 
或者,如果确实需要列始终为operadora,则删除hiveconf变量


可能您混淆了一个CTAS语句,在创建表时可以选择一列作为另一个名称

您到底遇到了什么问题?失败:ParseException行16:3无法识别列类型中“as”“operadora”“string”附近的输入谢谢。那么,你为什么需要歌剧《代码》?上次我检查时,您只需要列名和类型,在创建表时不需要其他单词。我需要标识“operadora”,为此,我使用变量。仅使用
“${hiveconf:tez.task.operadora}”字符串有什么问题?只能在select语句中使用AS,而不能在create语句中使用AS