Tensorflow2.0 HDFS数据读取
1. 背景
实际工作中训练数据往往很多,很难全部download到本地使用pandas load使用。本文介绍从HDFS读取数据用于训练的方法。
ps: 代码基于tensorflow 2.0 实现
2. Code
不废话,直接上代码吧
2.1 From CSV
基本思路就是使用 TextLineDataset 读取 csv
并用 decode_csv对每行做处理
def get_file_list(path_pattern=[], root_path):
"""
生成hdfs file list
:param path_pattern:
:param root_path
:return:
"""
cmd = """
hadoop fs -ls -R {0}
""".format(root_path)
if len(path_pattern) == 0:
pattern = "|".join(["(" + str(p.replace('/', '\/')) + ")" for p in path_pattern])
else:
pattern = ""
# 筛选文件
def validate_path_pattern(path):
if pattern != "" and re.search(pattern, path) and '_SUCCESS' not in path:
return True
elif pattern == "" and '_SUCCESS' not in path:
return True
else<