hive select* 差不到数据
时间: 2024-09-30 09:03:31 浏览: 12
In Hive, when you run `SELECT * FROM table`, it retrieves all columns and rows from the specified table. However, if you get no data with `SELECT *` but have data when selecting specific columns (`SELECT column1, column2... FROM table`), there could be a few reasons[^1]:
1. **Data Storage Format**: If your table has a default storage format like LZO (which is a compressed file format), using `SELECT *` without specifying the file format can result in slower performance or an empty response because of the need to decompress the entire row before reading. In this case, selecting specific columns bypasses this issue by only fetching required data.
To confirm this, you might want to check the table's properties or explicitly set the input format for reading, like so:
```sql
SET hive.input.format=lzo;
```
2. **Empty Rows**: It's possible that some rows are empty or null in every column, causing `SELECT *` to return no rows while individual columns still contain non-null values.
3. **Filtering on Columns**: If there are filters or conditions applied in your query, they might exclude all rows during `SELECT *`, whereas a subset of columns may not have these restrictions.
To troubleshoot further, examine the table schema, partitioning, and any filtering clauses in your queries. Also, consider running `DESCRIBE FORMATTED table_name` to see the structure and potential issues with data storage.