python如何导入hdfs

原创
admin 21小时前 阅读数 2 #Python

Python如何导入HDFS

Python 导入 HDFS 中的数据通常需要使用 Hadoop 的 Python 客户端库,如hadoophdfs 等,下面是一些常用的方法:

1、使用hadoop fs 命令

在 Python 中可以使用os.system 命令调用 Hadoop 的fs 命令来操作 HDFS,

import os
上传文件到 HDFS
os.system("hadoop fs -put local_file /hdfs_path")
从 HDFS 下载文件
os.system("hadoop fs -get /hdfs_path local_file")
读取 HDFS 文件内容
os.system("hadoop fs -text /hdfs_path > local_file")

2、使用hdfs

hdfs 库是 Hadoop 的 Python 客户端库之一,可以方便地使用 Python 操作 HDFS,

from hdfs import InsecureClient
连接 HDFS
client = InsecureClient('hdfs://localhost:9000')
上传文件到 HDFS
with open('local_file', 'rb') as f:
    client.write('/hdfs_path', f)
从 HDFS 下载文件
with open('/hdfs_path', 'rb') as f:
    client.read_file('/hdfs_path')
读取 HDFS 文件内容
with open('/hdfs_path', 'rb') as f:
    data = f.read()

3、使用pyarrow

pyarrow 库是 Apache Arrow 的 Python 客户端库,可以高效地读取 HDFS 中的数据,

import pyarrow as pa
import pyarrow.fs as fs
连接 HDFS
hdfs_client = fs.HadoopFileSystem(host='localhost', port=9000)
local_client = fs.LocalFileSystem()
上传文件到 HDFS
with open('local_file', 'rb') as f:
    hdfs_client.write('/hdfs_path', f)
从 HDFS 下载文件
with hdfs_client.open('/hdfs_path') as f:
    data = f.read()
    with open('local_file', 'wb') as w:
        w.write(data)
热门