java:flatmap

场景

1.spark Structured Streaming 中数据流一行变多行
2.一个JSON数组字符串动态变多个JSONobject字符串
3.dataset.flatmap

示例代码

作用:一个JSON数组字符串动态变多个JSONobject字符串
注意:写Encoders.STRING()

 Dataset<String> flatList=temp.flatMap(new FlatMapFunction<String, String>() {
            @Override
            public Iterator<String> call(String s) throws Exception {
                JSONArray jsonArray=new JSONArray(s);
                List<String> temp=new ArrayList<>();
                for(int i=0;i< jsonArray.length();i++){
                    temp.add( jsonArray.get(i).toString());
                }
                return temp.iterator();
            }
        }, Encoders.STRING());
flatMapJava Stream中的一个中间操作,它可以将一个流中的每个元素映射为一个流,并将这些流合并成一个新的流。通过flatMap操作,可以将多个流合并成一个流,实现扁平化处理。\[1\]\[2\] 在给定的代码示例中,flatMap操作被用于将一个字符串数组中的每个字符串拆分为字符数组,并将这些字符数组合并成一个新的流。具体来说,代码使用split方法将每个字符串拆分为字符数组,然后通过flatMap操作将这些字符数组合并成一个新的流。最后,通过forEach方法遍历新的流并打印每个字符。\[1\]\[2\] 另外,还可以使用flatMap操作对流进行其他操作,比如去重、排序等。在引用\[3\]中的代码示例中,flatMap操作被用于将一个字符串数组中的每个字符串拆分为字符数组,并通过distinct方法去除重复的字符,最后通过collect方法将结果收集到一个新的列表中。最终,通过forEach方法遍历新的列表并打印每个字符。\[3\] 总结来说,flatMap操作可以将多个流合并成一个流,实现扁平化处理。它在处理嵌套的数据结构或者需要将多个流合并的场景下非常有用。 #### 引用[.reference_title] - *1* *2* [java 8 Stream中flatMap方法](https://blog.csdn.net/dengjili/article/details/90557392)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [java8 stream流操作的flatMap(流的扁平化)](https://blog.csdn.net/u012045045/article/details/111036486)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值