Shell脚本命令是: hadoop fs -ls /user/hive/warehouse/mashery_db.db/agg_per_mapi_stats_five_minutes/ |排序| awk'{if(index($ 8,“。hive”)== 0&& $ 6< =“'”delete_up_to_epoch_date“'”&& $ 7< =“'”delete_up_to_epoch_hour:00“'”)打印$ 8}' + str(date_from).zfill(2)+'*'
基本上我想用python脚本执行。
答案 0 :(得分:1)
基本上你可以打开一个管道来执行你的命令。
import os
p = os.popen("YOUR_COMMAND")
答案 1 :(得分:0)
伪https://pypi.python.org/pypi/python-hdfs/
import pyhdfs
from operator import itemgetter
fs = pyhdfs.connect('hostname', 12345)
path = '/user/hive/warehouse/mashery_db.db/agg_per_mapi_stats_five_minutes/'
for f in sorted(fs.listdir(path), key=itemgetter('name')):
# {kind, name, last_mod, size, replication, block_size, owner, group, permissions, last_access}
is_hive = f['name'].endswith('.hive')
is_old_enough = f['last_mod'] <= delete_up_to_in_right_format
if is_hive and is_old_enough:
print f['name']+str(date_from).zfill(2)+ '*'
我没有完全获得最后的str(date_from).zfill(2)
- 这不是有效的shell