我使用下面的命令来赋值,但是由于某些原因,hdfs -count被禁用。有没有其他方法可以通过调整代码来获得
var=hdfs dfs -ls /hdfs_path/ | grep col=2020_03 | awk -F' ' '{system("hdfs dfs -count "$8)}' | awk -F' ' '{if ($3 != 0) print $4}' | awk -F'=' '{print $2}'|sort -nr | uniq | head -1基本上我需要找到在hdfs目录中保存数据的最新月值。例如
hdfs_path/col=2020_03_21/data.part - this has no data
hdfs_path/col=2020_03_20/data.part - this has data
hdfs_path/col=2020_03_19/data.part - this has data因此,输出应为val = 2020_03_20
发布于 2020-07-30 20:14:44
创建包含2列(data、date)和date作为分区列的配置单元外部表。运行配置单元查询以获取包含数据的日期。
从表group by date order by count(*) >1中选择最大(日期)
发布于 2020-07-31 04:49:03
您没有提到您正在使用的Hadoop的版本,所以我认为它是最新的3.x版本,而不是-count命令。要检查目录是否包含非空文件,可以使用du Hadoop命令。您通常的ls和grep然后打印|awk -F‘{ -> (“hdfs dfs -du -s "$8)}’| awk -F‘{if ($2 != 0) -du $3}’
https://stackoverflow.com/questions/63156487
复制相似问题