我是靠谱客的博主 能干仙人掌,最近开发中收集的这篇文章主要介绍spark读取hdfs文件的路径使用正则表达式,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

spark读取hdfs文件的路径使用正则表达式

例子一、

# -*- 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

例子二、

spark.read.json("/flume/product/160/raw1/2017/05/23/*[1-9]")

读取文件,文件以数字结尾.

最后

以上就是能干仙人掌为你收集整理的spark读取hdfs文件的路径使用正则表达式的全部内容,希望文章能够帮你解决spark读取hdfs文件的路径使用正则表达式所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部