在上一篇博客<各种大数据框架处理流程>,我们可以知道:大数据中流行的各种计算框架都是从数据输入–>转换–>输出。数据输入的方式有多种,这篇博客就来介绍一下Flink创建数据源,也就是输入的各种方式。
以下内容,均参考自Flink官网,如有不懂的可直接读官方文档 https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/batch/#data-sources
主要有以下几种方式:
- 读文件(包括本地文件和HDFS文件)
* text文件
* csv文件
* 压缩文件
* 递归地读文件夹 - 从集合 (Java和scala中的集合)
这两种方式又有不同的变化,比如读文件又可以读普通的text文件,csv文件或者压缩文件。
scala API
package ylqdh.bigdata.flink.test
import org.apache.flink.api.scala.ExecutionEnvironment
import org.apache.flink.configuration.Configuration
/**
* @Author ylqdh
* @Date 2020/1/13 14:41
* Scala api 方式创建数据集
*/
object DataSourceApp {
def main(args: Array[String]): Unit = {
val env = ExecutionEnvironment.getExecutionEnvironment
// fromCollection(env)
textFile(env)
// fromCSV(env)
// RecuDir(env)
}
// 从text文件创建数据集,压缩文件也可以直接读
// 支持的压缩格式有:deflate,gz,gzip,bz2,xz
def textFile(env:ExecutionEnvironment): Unit = {
val filePath = "file:///C:\\data\\scalaCode\\HelloWorld.gz" // 路径可以指定到文件名,也可以是文件夹,但文件夹下还有文件夹就读不到了
env.readTextFile(filePath).print()
}
// 递归地读文件夹里的文件
def RecuDir(env:ExecutionEnvironment): Unit =</