hadoop - hdfs 计数命令
问题描述
我正在使用下面的命令来分配一个值,但由于某些原因 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
解决方案
创建具有 2 列(数据、日期)和日期作为分区列的 Hive 外部表。运行 hive 查询以获取包含数据的日期。
按日期顺序从表组中选择 max(date),count(*) > 1
推荐阅读
- c# - Asp Net core 2.2 的配置是否随 Asp Net core 3 一起消失了?
- docker - 无法连接到 cli 容器
- python - 如何将 2 个 python 脚本与 import 结合起来?
- python - 如何用包含训练数据的矩阵替换输入数据
- spring-batch - 基于 Spring Batch 注释的作业作为一个步骤添加到基于 XML 的作业中
- wordpress - Woocommerce 订单:预览时如何显示名字和姓氏?
- linux - OSX 和 Linux 上 hexdump 输出的差异
- mysql - 有什么方法可以恢复我的 MySQL 数据库吗?
- sql - 替换字母之间的点 [ORACLE]
- python - 正则表达式疑点