# -*- coding:utf-8 -*-
from pyspark import SparkConf
from pyspark import SparkContext
import os
if __name__ == '__main__':
os.environ["SPARK_HOME"] = "/Users/a6/Applications/spark-2.1.0-bin-hadoop2.6"
conf = SparkConf().setMaster('local').setAppName('group')
sc = SparkContext(conf=conf)
'''/log/shuangshi_haibian/2018-07-16-19-58-log.1531792035400.tmp'''
"hdfs://localhost:9002/tmp/match/2018-07-16-19-58-log.1531788952521"
'''
需要:实时处理数据时,如果读取到tmp文件,但是实际处理的时候变成不是tmp文件,这样会导致程序报错,
在这里,我们就是要只匹配那些以数字为结尾的hdfs文件作为spark的输入,不把以tmp的临时文件作为输入
# hdfs目录
-rw-r--r-- 1 a6 supergroup 31672 2018-07-17 10:59 /tmp/match/2018-07-16-19-58-log.1531792131825
-rw-r--r-- 1 a6 supergroup 30182 2018-07-17 10:59 /tmp/match/2018-07-16-19-58-log.1531792160280
-rw-r--r-- 1 a6 supergroup 27956 2018-07-17 10:59 /tmp/match/2018-07-16-19-58-log.1531792347369.tmp
'''
'''
input_data="hdfs://localhost:9002/tmp/match/%s-19-58-log.1531788952521" % ('2018-07-16')
print input_data
input_data = "hdfs://localhost:9002/tmp/match/%s-19-58-log.153178895252[1-9]" % ('2018-07-16')
print input_data
'''
'''
经过查询,在匹配路径时,使用[0-9]做匹配,能够获取所有最后一位以数字为结尾的那些hdfs文件作为输入,而不是tmp文件,满足需求'''
input_data = "hdfs://localhost:9002/tmp/match_bak/%s*[0-9]" % ('2018-07-16')
print input_data
result = sc.textFile(input_data)
res_rdd= result.collect()
for line in res_rdd:
print line
读取文件,文件以数字结尾.