diff --git a/be/src/exec/parquet_reader.cpp b/be/src/exec/parquet_reader.cpp index a60295b0fa..502fa0ef51 100644 --- a/be/src/exec/parquet_reader.cpp +++ b/be/src/exec/parquet_reader.cpp @@ -55,6 +55,9 @@ Status ParquetReaderWrap::init_parquet_reader(const std::vector _file_metadata = _reader->parquet_reader()->metadata(); // initial members _total_groups = _file_metadata->num_row_groups(); + if (_total_groups == 0) { + return Status::EndOfFile("Empty Parquet File"); + } _rows_of_group = _file_metadata->RowGroup(0)->num_rows(); // map diff --git a/be/src/exec/parquet_scanner.cpp b/be/src/exec/parquet_scanner.cpp index c69d19940d..2ce43a1219 100644 --- a/be/src/exec/parquet_scanner.cpp +++ b/be/src/exec/parquet_scanner.cpp @@ -142,7 +142,12 @@ Status ParquetScanner::open_next_reader() { continue; } _cur_file_reader = new ParquetReaderWrap(file_reader.release()); - return _cur_file_reader->init_parquet_reader(_src_slot_descs); + Status status = _cur_file_reader->init_parquet_reader(_src_slot_descs); + if (status.is_end_of_file()) { + continue; + } else { + return status; + } } }