Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Scala遍历Seq[row]直到满足特定条件_Scala_Loops_Apache Spark_Seq - Fatal编程技术网

使用Scala遍历Seq[row]直到满足特定条件

使用Scala遍历Seq[row]直到满足特定条件,scala,loops,apache-spark,seq,Scala,Loops,Apache Spark,Seq,我需要迭代行类型的scalaSeq,直到满足特定条件。我不需要进一步处理后的条件 我有一个seq[Row]r->WrappedArray([1/1/2020,abc,1],[1/2/2020,pqr,1],[1/3/2020,stu,0],[1/4/2020,opq,1],[1/6/2020,lmn,0]) 我想在这个集合中迭代r.getInt(2),直到遇到0。一旦遇到0,我需要中断迭代并收集r.getString(1),直到那时。我不需要查看任何其他数据 我的输出应该是:数组(abc、pqr

我需要迭代
类型的
scala
Seq
,直到满足特定条件。我不需要进一步处理后的条件

我有一个
seq[Row]
r
->
WrappedArray([1/1/2020,abc,1],[1/2/2020,pqr,1],[1/3/2020,stu,0],[1/4/2020,opq,1],[1/6/2020,lmn,0])

我想在这个集合中迭代
r.getInt(2)
,直到遇到
0
。一旦遇到
0
,我需要中断迭代并收集
r.getString(1)
,直到那时。我不需要查看任何其他数据

我的输出应该是:
数组(abc、pqr、stu)

我是scala编程新手。这个
seq
实际上是一个
Dataframe
。我知道如何使用Spark
DataFrame
处理此问题,但由于我的组织提出了一些限制,
windows
函数,
createDataFrame
函数在我们的环境中不可用/无法工作。因此,我不得不求助于
Scala
编程来实现同样的目标

我所能想到的只是下面这样的东西,但并没有真正起作用

breakable{
for(i <- r)
var temp = i.getInt(3)===0
if(temp ==true)
{
val = i.getInt(2)
break()
}
}

breakable{

对于(i您可以使用
takeWhile
方法在元素值为1时获取元素

s.takeWhile(_.getInt(2) == 1).map(_.getString(1))
我会给你的

List(abc, pqr)
因此,您仍然需要获取int值为0的第一个元素,您可以按如下操作:

s.find(_.getInt(2)== 0).map(_.getString(1)).get
综合起来(并处理可能的零值):

结果:

Seq[String] = List(abc, pqr, stu)

当元素的值为1时,可以使用
takeWhile
方法获取元素

s.takeWhile(_.getInt(2) == 1).map(_.getString(1))
我会给你的

List(abc, pqr)
因此,您仍然需要获取int值为0的第一个元素,您可以按如下操作:

s.find(_.getInt(2)== 0).map(_.getString(1)).get
综合起来(并处理可能的零值):

结果:

Seq[String] = List(abc, pqr, stu)

使用不带窗口功能的时间序列…使用不带窗口功能的时间序列是一家非常有趣的公司…使用该解决方案是一家非常有趣的公司!谢谢!只是出于好奇,是否可以将不同的记录放入列表中?类似collect_set()的内容?那么你想要一个列表吗?很抱歉,如果我没有得到它,请提供一个你希望得到什么的示例解决方案有效!谢谢!只是出于好奇,是否可以将不同的记录放入列表中?类似collect_set()的内容?那么你想要一个列表?很抱歉,如果我没有得到它,请提供一个你希望得到什么的例子