当然可以!您可以使用 Shell 脚本来上传一周内文件夹下的所有文件到 HDFS。以下是一个示例的 Shell 脚本:
#!/bin/bash
# 获取当前日期
today=$(date +%Y-%m-%d)
# 获取上一周的开始日期和结束日期
last_week_start=$(date -d "$today -$(date +%w) days -7 days" "+%Y-%m-%d")
last_week_end=$(date -d "$last_week_start +6 days" "+%Y-%m-%d")
# 假设文件夹路径为 /path/to/folder
folder_path="/path/to/folder"
# 循环遍历一周内的日期
current_date=$last_week_start
while [[ "$current_date" <= "$last_week_end" ]]
do
# 构造日期对应的文件夹路径
date_folder="$folder_path/$current_date"
# 构造上传命令
hdfs_upload_cmd="hdfs dfs -put $date_folder /path/on/hdfs/"
# 执行上传命令
$hdfs_upload_cmd
# 更新日期至下一天
current_date=$(date -d "$current_date +1 day" "+%Y-%m-%d")
done
请注意,上述示例中的路径 /path/to/folder
和 /path/on/hdfs/
都需要替换为实际的文件夹路径和 HDFS 路径。
该脚本会遍历一周内的日期,依次上传每个日期文件夹下的所有文件到 HDFS。确保您的系统上安装了 hdfs
命令,并且有适当的访问权限以执行上传操作。
希望以上示例能够帮助到您!如果您还有其他问题,请随时提问。