Scala 如何将Flink数据集元组转换为一列
我有一个数据图表,比如Scala 如何将Flink数据集元组转换为一列,scala,apache-flink,Scala,Apache Flink,我有一个数据图表,比如 1 2 1 4 4 1 4 2 4 3 3 2 2 3 但我找不到一种方法将其转换为一列数据集,如 1 2 1 4 4 1 ... 这是我的代码,我使用了scala ListBuffer,但在Flink数据集中找不到这样做的方法 val params:ParameterTool=ParameterTool.fromsargs val env=ExecutionEnvironment.getExecutionEnvironment env.getConfig.setGl
1 2
1 4
4 1
4 2
4 3
3 2
2 3
但我找不到一种方法将其转换为一列数据集,如
1
2
1
4
4
1
...
这是我的代码,我使用了scala ListBuffer,但在Flink数据集中找不到这样做的方法
val params:ParameterTool=ParameterTool.fromsargs
val env=ExecutionEnvironment.getExecutionEnvironment
env.getConfig.setGlobalJobParametersparams
val text=env.readTextFileparams.getinput
val tupleText=text.map{line=>
val arr=line.split
arr0,arr1
}
变量x:Seq[String,String]=tupleText.collect
var templast=newlistbuffer[String]
x、 foreachline=>{
圣堂武士+=行。\u 1
圣堂武士+=行。\u 2
}
圣殿骑士
您可以使用flatMap执行此操作:
//获取一些输入
val输入:数据集[Int,Int]=env.fromElements1,2,2,3,3,4
//将每个元组元素作为自己的记录发出
val输出:数据集[Int]=input.flatMap t,out=>{
输出。收集
输出。收集
}
//打印结果
输出.打印
谢谢你的回答,顺便问一下,我需要为输出和输出变量指定类型吗?当我没有像tupleText.flatMap t那样编写时,编译器出现了错误,out:Collector[String]=>{…我还没有弄清楚什么时候我需要给出变量的类型,什么时候scala可以自己识别/找到合适的类型。您声明了输出的结果类型吗?您需要输出:DataSet[Int]或输出:Collector[Int]。否则编译器无法推断结果类型。