Spark Streaming fileStream基于文件的流计算

本文介绍了Spark Streaming的fileStream功能,用于实时处理HDFS中的新文件。通过API如fileStream、textFileStream和binaryRecordsStream创建数据流,并展示了相关示例。注意,fileStream依赖于文件修改时间而非创建时间,且目录下的文件应同类型。为了容错,可以使用checkpoint和滑动窗口机制。
摘要由CSDN通过智能技术生成

项目中需要每隔5分钟去处理hdfs中的新进来的文件,调研一下Spark Streaming的file source

Spark Streaming中实现了以文件为Source,监控对应目录中的文件的修改来生成流,通过FileInputDStream来实现。

API介绍

提供了fileStreamtextFileStreambinaryRecordsStream来创建FileInputStream

fileStream

fileStream有三种重载形式,都是直接传参数进去返回FileInputDStream

有以下参数&泛型:

参数名 含义
directory 要监听的目录,如hdfs://192.168.168.200:9000/data/ds=*
filter 过滤目录,是一个Path => Boolean的函数。如果需要保留,返回true
newFilesOnly 启动程序后,是否只读新进来的文件
K: ClassTag HDFS文件的Key类型。如LongWritable
V: ClassTag HDFS文件的Value类型。如Text
F <: NewInputFormat[K, V]: ClassTag 读取HDFS文件时的输入格式。如TextInputFormat
textFileStream
  def textFileStream(directory: String): DStream[String] = withNamedScope("text file stream") {
   
    fileStream[LongWritable, Text, TextInputFormat](directory).map(_._2.toString)
  }

通过传入text类型文件的目录,来生成流。调用的是fileStream算子。

binaryRecordsStream

这个是生成二进制流的

Demo

通过fileStream创建流的Demo
  def main(args: Array[String]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值