首页 / JAVA / java – 如何打印成平面对?
java – 如何打印成平面对?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 如何打印成平面对?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2195字,纯文字阅读大概需要4分钟。
内容图文
![java – 如何打印成平面对?](/upload/InfoBanner/zyjiaocheng/805/a2f9c04f16244fb897c8bec811623c55.jpg)
建立:
我有关于客户和他们最喜欢的十大电视节目的数据.到目前为止,我能够在JavaRDD< Tuple2< String,Shows []>>中获取此数据.我能够打印它并检查它是否符合预期,它是.
目的:
现在,我需要以下列格式将此数据打印到文件中:
Customer_1 Fav_TV_Show_1
Customer_1 Fav_TV_Show_2
Customer_1 Fav_TV_Show_3
Customer_1 Fav_TV_Show_4
Customer_2 Fav_TV_Show_1
Customer_2 Fav_TV_Show_2
Customer_2 Fav_TV_Show_3
Customer_2 Fav_TV_Show_4
Customer_3 Fav_TV_Show_1
Customer_3 Fav_TV_Show_2
Customer_3 Fav_TV_Show_3
Customer_3 Fav_TV_Show_4
问题:
我不知道该怎么做.到目前为止,我试过这个:
// Need a flat pair back
JavaPairRDD<String, Shows> resultPairs = result.mapToPair(
new PairFunction<Tuple2<String,Shows[]>, String, Shows>() {
public Tuple2<String, Shows> call(Tuple2<String, Shows[]> t) {
// But this won't work as I have to return multiple <Customer - Show> pairs
}
});
}
任何帮助深表感谢.
解决方法:
好吧,你有一个JavaRDD< Tuple2< String,Shows []>>这有点奇怪.而不是JavaPairRDD< String,Shows []>在键值对的情况下使用起来更舒服.尽管如此,您可以执行以下操作以平坦化结果:
// convert your RDD into a PairRDD format
JavaPairRDD<String, Shows[]> pairs = result.mapToPair(new PairFunction<Tuple2<String,Shows[]>, String, Shows[]>() {
public Tuple2<String, Shows[]> call(Tuple2<String, Shows[]> t) throws Exception {
return t;
}
});
// now flatMap the values in order to split them with their respective keys
JavaPairRDD<String, Shows> output = pairs.flatMapValues(
new Function<Shows[], Iterable<Shows>>() {
public Iterable<Shows> call(Shows[] shows) throws Exception {
return Arrays.asList(shows);
}
});
// do something else with them
output.foreach(new VoidFunction<Tuple2<String, Shows>>() {
public void call(Tuple2<String, Shows> t) throws Exception {
System.out.println(t._1() + " " + t._2());
}
});
或者,您也可以通过一步使用flatMapToPair获取输出RDD,将Shows数组手动组合为Iterable,如下所示:
JavaPairRDD<String, Shows> output = result.flatMapToPair(
new PairFlatMapFunction<Tuple2<String, Shows[]>, String, Shows>() {
public Iterable<Tuple2<String, Shows>> call(Tuple2<String, Shows[]> t) throws Exception {
ArrayList<Tuple2<String, Shows>> ret = new ArrayList<>();
for (Shows s : t._2())
ret.add(new Tuple2<>(t._1(), s));
return ret;
}
});
希望它有所帮助.干杯!
内容总结
以上是互联网集市为您收集整理的java – 如何打印成平面对?全部内容,希望文章能够帮你解决java – 如何打印成平面对?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。