要查找在hdfs中创建文件或文件夹的天数,我使用了以下python代码。
import datetime
from datetime import datetime
def get_days(directory, file)
current_datetime = datetime.now()
command = "hadoop fs -ls " + directory + file + " | tr -s ' ' | cut -d' ' -f6-7 | grep '^[0-9]' "
status, output = shell_command(command)
if status == 0:
file_date = datetime.strptime(output, '%Y-%m-%d %H:%M')
date_period = current_datetime - file_date
return date_period.days
它抛出了以下错误
File "/usr/lib64/python2.7/_strptime.py", line 325, in _strptime (data_string, format))
ValueError: time data 'log4j:WARN No appenders could be found for logger (org.apache.hadoop.security.UserGroupInformation).\nlog4j:WARN Please initialize the log4j system properly.\nlog4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.\n2018-04-11 14:08' does not match format '%Y-%m-%d %H:%M'
我能想到的唯一原因是输出是推断类型Unicode的变量。有没有其他方法可以在python中找到Hdfs文件的修改日期或年龄?请指教。对上述代码的任何更改也是受欢迎的。提前致谢。
答案 0 :(得分:0)
以下代码对我有用:
'03.07.00E|03.07.01E|03.07.02E|03.07.03E|03.07.04E|03.07.05E|16.2.1|16.2.2|03.08.00E|16.3.1|16.3.2|16.3.3|16.3.1a|16.4.1|16.4.2|03.17.01E|03.07.11E'