2017-06-13 3 views
0

Ich habe eine EXTERNAL Bienenstock Tisch Shop in LZO Format. Es gibt einige Zeilen in dieser Tabelle, aber ich kann die Daten nicht durch "select *" erhalten. Es muss einige Probleme mit meinem Tabellenformat geben, aber ich weiß nicht, wie ich es beheben kann.Hive: Wählen Sie * kein Ergebnis

CREATE EXTERNAL TABLE tableName(
    column1 string 
) 
PARTITIONED BY ( 
    column2 string 
) 
ROW FORMAT DELIMITED 
    FIELDS TERMINATED BY '\t' 
STORED AS INPUTFORMAT 
    'com.hadoop.mapred.DeprecatedLzoTextInputFormat' 
OUTPUTFORMAT 
    'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' 
LOCATION 
    'hdfs://.../tableName' 

select count(*) from tableName; //return 1 
select * from tableName; //return nothing 
select column1, column2 from tableName group by column1,column2; //return data1 data2 
select * from tableName where column2='data2'; //return nothing 

Nur "Select *" gibt nichts zurück. Vielleicht wird "select *" nicht durch map-reduce ausgeführt?

+0

Mögliche Duplikat [Last CSV-Datei von gzip-Datei in hive] (https://stackoverflow.com/questions/44450451/load -csv-Datei-von-gzip-Datei-in-Hive) –

Antwort

0

Ich finde, dass die einfache SQL (ohne Zählung, sum, Gruppe usw.) werden nicht durch ausgeführt werden Karte-verringern, die Arbeit holen durch wird (direkt hdfs Datei lesen). Wie auch immer, Meine hdfs-Datei wird im lzo-Format gespeichert, es wird ein Problem geben, es zu lesen.

Die eine Lösung zwingt einfache SQL gehen zur Karte-reduzieren.

set hive.fetch.task.conversion=none; 
0

Es tut mir sehr leid für den wahren Grund. ich die Parameter für LZO vergessen haben, damit die hdfs Datei ist TEXTFILE Format :(

set hive.exec.compress.output=true; 
set mapred.output.compression.codec=com.hadoop.compression.lzo.LzopCodec;