我使用pyarrow 2.0.0在centos8上与hadoop3.3交互。hadoop和pyarrow模块安装成功。所以我把一些本地csv文件复制到hadoop文件系统中。我尝试从hadoop文件系统读取csv文件,并将csv行转换为字符串列表。下面是我第一次尝试的代码。
from pyarrow import fs
hdfs = fs.HadoopFileSystem('localhost', port=9000)
def readHdFile(filename):
with hdfs.open_input_file(filename) as inf:
read_data = inf.read().decode('utf-8')
return read_data
data = readHdFile('test.csv')
print(data)
以上代码工作正常。打印数据成功。例如,
date,values,
2007-01-01,6.3
2008-01-01,6.7
2009-01-01,7.7
但这些行的类型不是字符串列表,而是字符串本身的大尺寸。因为返回的字符串太大,所以下一步被阻塞。然后我将pyarrow方法更改为csv,如下所示,
from pyarrow import csv
from pyarrow import fs
def readHdFile(filename):
with hdfs.open_input_file(filename) as inf:
read_data = csv.read_csv(inf)
return read_data
data = readHdFile('test.csv')
print(data)
但是pyarrow表类型的返回值不是我所期望的。
pyarrow.Table
date: timestamp[s]
values: double
如何使用pyarrow将hadoop文件系统中存储的csv文件转换为字符串类型的列表?任何答复都将感激不尽。
暂无答案!
目前还没有任何答案,快来回答吧!