目录
选型:Spark解析关键词列表rdd1;Spark解析文件目录数据rdd2;rdd1 join rdd2(broadcast)
技巧2:正则匹配不支持深度+2的递归,比如指定/opt/*;
技巧3:如果想覆盖的目录更全面些,可以自己弄一个数组,拼接成一串path
需求:查询给定的若干表在代码中有几个被使用
转换概念:给定的关键
词,在日志文件中命中了几种
选型:Spark解析关键词列表rdd1;Spark解析文件目录数据rdd2;rdd1 join rdd2(broadcast)
(计划用flume采集目录下的文件,sink到HDFS,再用Spark计算,后来发现Spark就能全覆盖)
从一个列表中去若干文件中查找有多少个地方,用到了那几个单词
list.txt文件内容如下
table_a
table_b
table_c
被查询目录:
game
├── lagou
│ ├── notes
│ │ ├── Kafka.pdf
│ │ ├── Redis01.pdf
│ │ └── Redis06.pdf
│ ├── servers
│ │ ├── apache-maven-3.6.3
│ │ │ ├── bin
│ │ │ ├── conf
│ │ │ └── README.txt
│ │ ├── flume-1.9.0
│ │ │ ├── bin
│ │ │ ├── conf
│ │ │ └── tools
│ │ ├── hadoop-2.9.2
│ │ │ ├── bin
│ │ │ ├── etc
│ │ │ └── share
│ │ ├── hbase-1.3.1
│ │ │ ├── bin
│ │ │ ├── conf
│ │ │ └── README.txt
│ │ ├── hive-2.3.7
│ │ │ ├── bin
│ │ │ ├── conf
│ │ │ └── scripts
│ │ ├── kafka_2.12-1.0.2
│ │ │ ├── bin
│ │ │ ├── config
│ │ │ └── site-docs
│ │ ├── spark-2.4.5
│ │ │ ├── bin
│ │ │ ├── conf
│ │ │ └── yarn
│ │ └── zookeeper-3.4.14
│ │ ├── bin
│ │ ├── conf
│ │ └── zookeeper-server
│ └── software
│ ├── azkaban-solo-server-0.1.0-SNAPSHOT.tar.gz
│ ├── cdh
│ │ ├── 5 -> 5.7.6
│ │ ├── 5.7 -> 5.7.6
│ │ └── 5.7.6
│ ├── clickhouse2
│ ├── flink-1.11.1-bin-scala_2.11.tgz
│ └── nohup.out
└── rh
└── devtoolset-8
├── enable
└── root
├── bin -> usr/bin
├── etc
├── home
├── opt
├── root
├── usr
└── var
实验环境