Tensorflow第二课文件读取

和java和scala处理的方式不同,tensorflow在进行hdfs文件读取的时候主要是先要import HdfsClient这个包然后才能进行相应 的hdfs文件读取

from pyhdfs import HdfsClient
client = HdfsClient(hosts = '172.18.11.72:50070')
print(client.list_status('/'))
file = client.open("/scaler.0.2/part-00000")
count = 0
while 1:
    line = file.readline()
    print line
    count = count + 1
    if not line:
        break
print ("count:" + count)

while 1:里面的部分是对hdfs文件按行读,并测试行数。但是在读取hdfs文件的时候tensorflow的速度真的是很慢。上面的程序对于167万行左右的文件数竟然跑了好几个小时。。。我和我的小伙伴都惊呆了,我就在想难道tensorflow加载数据这么慢吗?带着这个疑问我又进行了本地文件的读取,事情有了转折。

path = "/home/wangrui/important/data.scaler.svm.0.2/part-00000"
with open(path,'r') as file:
# with client.open("/scaler.0.2/part-00000") as file:
    lines = file.readlines()
    count = 0
    for line in lines:
        word = line.split(" ")
        features = []
        label = []
        for i in range(1, len(word)):
            if i < (len(word) - 1):
                features.append(word[i].split(":")[1])
            else:
                features.append(word[len(word) - 1].split(":")[1].split("\n")[0])
        label.append(int(word[0]))
        )
        write.write(example.SerializeToString())
    write.close()

这个操作所需要的时间竟然只要几分钟,也就是说只有在加载hdfs文件的时候才会出现上面那种读取数据花费很长时间的情况,对于本地的数据,tensorflow还是很正常的。如果有知道为什么会这样的小伙伴可以在评论中告诉我,让我解除一下疑惑。同时希望可以一起学习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值