hive 已创建外部表,但该表为空

2g32fytz  于 2022-12-18  发布在  Hive
关注(0)|答案(2)|浏览(257)

我想从之前上传到服务器的.csv文件创建一个外部表,在Bline(Hive的shell)中,我尝试运行以下脚本:

CREATE EXTERNAL TABLE c_fink_category_mapping (
    trench_code string,
    fink_code string
)
row format delimited fields terminated by '\073' stored as textfile 
location '/appl/trench/dev/data/in/main/daily_wf/fink_category_mapping'
TABLEPROPERTIES ('serialization.null.format' = '')
;

这将创建表w/o任何错误拜特表本身是空的。帮助将不胜感激。我的文本文件填充了数据。

jdgnovmf

jdgnovmf1#

首先,检查位置路径是否正确。
然后尝试以下配置:

CREATE EXTERNAL TABLE c_fink_category_mapping (
    trench_code string,
    fink_code string
)
ROW FORMAT SERDE 
      'org.apache.hadoop.hive.serde2.OpenCSVSerde' 
WITH SERDEPROPERTIES ( 
  'quoteChar'='"', 
  'separatorChar'=',') 
STORED AS INPUTFORMAT 
  'org.apache.hadoop.mapred.TextInputFormat' 
OUTPUTFORMAT 
  'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION
  '/appl/trench/dev/data/in/main/daily_wf/fink_category_mapping';
nukf8bse

nukf8bse2#

上述答复似乎是正确的:

CREATE EXTERNAL TABLE c_fink_category_mapping (
    trench_code string,
    fink_code string
)
ROW FORMAT SERDE 
      'org.apache.hadoop.hive.serde2.OpenCSVSerde' 
WITH SERDEPROPERTIES ( 
  'quoteChar'='"', 
  'separatorChar'=',') 
STORED AS INPUTFORMAT 
  'org.apache.hadoop.mapred.TextInputFormat' 
OUTPUTFORMAT 
  'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION
  '/appl/trench/dev/data/in/main/daily_wf/fink_category_mapping';

这将创建使用逗号作为分隔符的表,这样可以正确解析CSV文件中的数据,并使用该文件中的数据填充表。如果更适合您的数据,您也可以指定其他分隔符,如'\t'。

相关问题