DataSet API编程指南之Data Sink(五)

Flink的数据流向图,如下图所示。
在这里插入图片描述
Source 就是数据的来源,中间的 Transformations其实就是具体的处理逻辑,进行一系列的转换,最后,将结果 Sink 到目的地,或者说存储到某个地方。

  • writeAsText() / TextOutputFormat - 以字符串的形式逐行写入元素。字符串是通过调用每个元素的toString()方法获得的。
  • writeAsFormattedText() / TextOutputFormat - 以字符串的形式逐行写入元素。可以通过调用用户定义的format() 方法获取每个元素的字符串值。
  • writeAsCsv(...) / CsvOutputFormat - 以逗号分隔值文件的形式写入元组。行和字段间的分隔符是可以配置的。每个字段的值可以通过对象.toString()方法获取。
  • print() / printToErr() - 在标准输出/标准错误流中打印每个元素的toString()值。
  • write() / FileOutputFormat -方法和用户自定义文件输出的基类。支持自定义对象到字节的转换。
  • output()/ OutputFormat - 较为通用的输出方法,用于不基于文件的Data Sink(例如将结果存储在数据库中)。

使用案例介绍:

object DataSetSinkApp {
    def main(args: Array[String]): Unit = {
        var list = 1 to 10
        val env: ExecutionEnvironment = ExecutionEnvironment
                .getExecutionEnvironment
        val data: DataSet[Int] = env.fromCollection(list)

        data.writeAsText("data/output/sink/list",
            writeMode = WriteMode.OVERWRITE)
                .setParallelism(2)  // 输出到两个文件中
        // Note: 一定要执行下面这段代码,否则不会输出
        env.execute("DataSetSinkApp")
    }
}

文件输出结果:
Sink文件输出

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值