Ubuntu中Python操控HDFS
时间: 2025-07-27 18:10:34 浏览: 5
在Ubuntu系统中使用Python操作HDFS,可以通过`pyarrow`库实现与HDFS的连接以及文件的读写操作。`pyarrow`提供了对Hadoop文件系统的支持,可以方便地通过Python代码访问HDFS中的数据。
### 连接HDFS
首先,需要安装`pyarrow`库。可以通过以下命令安装:
```bash
pip install pyarrow
```
安装完成后,使用`pyarrow.hdfs.connect()`方法连接HDFS。该方法需要传入HDFS的主机地址和端口号(默认为8020),以及使用的用户名(通常是`hdfs`)。示例代码如下:
```python
import pyarrow as pa
hdfs_host = '你的HDFS服务器IP'
hdfs_port = 8020
fs = pa.hdfs.connect(host=hdfs_host, port=hdfs_port, user='hdfs')
```
### 读取HDFS文件
读取HDFS上的文件可以使用`fs.open()`方法打开文件,并结合`pyarrow.csv.read_csv()`方法将文件内容转换为`pyarrow.Table`对象。如果需要将其转换为`pandas.DataFrame`以便进行进一步分析,可以使用`to_pandas()`方法:
```python
import pyarrow.csv as csv
file = '/user/data/df_raw_label.csv'
with fs.open(file, mode='rb') as f:
arrow_table = csv.read_csv(f)
df = arrow_table.to_pandas()
print(df.head())
```
### 写入HDFS文件
将数据写回HDFS时,可以使用`pyarrow.parquet.write_table()`方法将`pyarrow.Table`对象写入HDFS。示例代码如下:
```python
import pyarrow.parquet as parquet
parquet_file = '/user/data/df_raw_label.parquet'
with fs.open(parquet_file, mode="wb") as f:
parquet.write_table(arrow_table, f)
```
### 列出HDFS目录下的文件
此外,还可以使用`fs.ls()`方法列出HDFS目录下的文件列表:
```python
file_list = fs.ls('/user/data')
print(file_list)
```
通过以上步骤,可以在Ubuntu系统中使用Python操作HDFS,实现文件的读取、转换和写入操作[^1]。
---
阅读全文
相关推荐


















