flink系列5 最简单的hello world

最简单的hello world

//0.引入必要的程序元素
import org.apache.flink.api.scala._

object HelloFlink {
  def main(args: Array[String]): Unit = {
    // 1.设置运行环境
    val env = ExecutionEnvironment.getExecutionEnvironment

    //2.创造测试数据
    val text = env.fromElements(
      "To be, or not to be,--that is the question:--",
      "Whether 'tis nobler in the mind to suffer",
      "The slings and arrows of outrageous fortune",
      "Or to take arms against a sea of troubles,")

    //3.进行wordcount运算
    val counts = text.flatMap(_.toLowerCase.split("\\W+"))
      .map((_, 1)).groupBy(0).sum(1)
    //4.打印测试结构
    counts.print()
  }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Flink的flatMap操作是一种针对数据流的转换操作,可以用于清洗数据。在Flink中,flatMap操作可以将一个输入元素映射为零个、一个或多个输出元素。 为了清洗数据,你可以使用flatMap操作来实现以下步骤: 1. 定义一个自定义的flatMap函数,实现数据清洗逻辑。该函数将输入的数据进行处理,并生成一个或多个清洗后的输出元素。 2. 在Flink的DataStream上使用flatMap函数进行转换。使用`flatMap`方法并传入自定义的flatMap函数即可。 下面是一个简单的示例,展示如何使用Flink的flatMap操作进行数据清洗: ```java import org.apache.flink.api.common.functions.FlatMapFunction; import org.apache.flink.util.Collector; public class DataCleaner implements FlatMapFunction<String, String> { @Override public void flatMap(String value, Collector<String> out) { // 数据清洗逻辑 // 这里只是一个示例,你可以根据实际需求进行自定义处理 String cleanedData = value.replaceAll("[^a-zA-Z0-9]", ""); // 将清洗后的数据输出 out.collect(cleanedData); } } public class Main { public static void main(String[] args) throws Exception { final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); // 读取输入数据流 DataStream<String> input = env.fromElements("Hello, World!", "Flink is awesome!"); // 应用flatMap操作进行数据清洗 DataStream<String> cleanedData = input.flatMap(new DataCleaner()); // 输出清洗后的数据流 cleanedData.print(); env.execute("Data Cleaning Example"); } } ``` 在上面的示例中,我们定义了一个`DataCleaner`类,实现了`FlatMapFunction`接口,其中的`flatMap`方法用于执行数据清洗逻辑。在`Main`类中,我们创建了一个Flink的执行环境,并读取了输入的数据流。然后,我们应用了`flatMap`操作,传入`DataCleaner`类的实例。最后,我们将清洗后的数据流进行打印输出。 请根据实际需求修改`DataCleaner`类中的数据清洗逻辑,并运行示例代码来进行数据清洗操作。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值