使用Hive加载HDFS数据并分析图书评分情况
时间: 2024-11-24 15:41:41 浏览: 15
在Apache Hive中,你可以通过创建外部表(EXTERNAL TABLE)或者使用`LOAD DATA INPATH`命令从Hadoop Distributed File System (HDFS) 加载图书评分数据。首先,你需要确保数据存储在HDFS的适当路径下,并且文件格式是Hive支持的,比如文本文件、CSV或JSON。
1. 定义Hive表:
```sql
CREATE EXTERNAL TABLE books_ratings (
book_id INT,
user_id INT,
rating DECIMAL(3,1),
timestamp TIMESTAMP
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;
```
这里假设数据是以逗号分隔值(CSV)的形式存在。
2. 加载数据:
```sql
LOAD DATA LOCAL INPATH '/path/to/books_ratings_data.csv' INTO TABLE books_ratings;
```
如果你的数据不在本地(例如,直接在HDFS上),则去掉`LOCAL`关键字。
3. 分析图书评分情况:
- 查询平均评分:
```sql
SELECT AVG(rating) as average_rating FROM books_ratings;
```
- 按书籍ID统计评分分布:
```sql
SELECT book_id, COUNT(*) as rating_count FROM books_ratings GROUP BY book_id;
```
阅读全文