Scala:如何在循环中合并数据帧
Scala: How to do union of data frames in the loop
我想用递归方法合并数据框。
我正在用递归方法进行一些计算,过滤数据并存储在一个变量中。在第二次迭代中,我将进行一些计算,然后再次将数据存储在同一个 variable.when 中,我第二次调用该方法,我的第一个结果是 vanished.Ideally 我必须将结果存储在一个临时变量中,并且我需要对所有结果进行联合,直到递归方法完成执行。
df 中的 Iteration1 输出:
Col1
14
35
df 中的 Iteration2 输出:
Col1
18
20
现在我需要最终输出,
Col1
14
35
18
20
代码:
def myRecursiveMethod(first: List[List[String]],
Inputcolumnsdummy: List[List[String]],
secondInputcolumns: List[List[String]] = {
val ongoingResult = doSomeCalculation(first,Inputcolumnsdummy, secondInputcolumns)
}
我希望我的代码应该如下所示,
def myRecursiveMethod(first: List[List[String]],
Inputcolumnsdummy: List[List[String]],
secondInputcolumns: List[List[String]]) = {
val ongoingResult = doSomeCalculation(first, Inputcolumnsdummy, secondInputcolumns)
Val temp = temp.union(ongoingResult)
}
您应该尝试:像这样使用 union
:df1.union(df2)
或 df1.union(computation(df2,...))
.
示例如下:
def doCompute(df: DataFrame): DataFrame = {
val tmp: DataFrame = ... // TODO: call to your computation method
tmp.show()
df.union(tmp)
}
val df1: DataFrame = ...
val df2: DataFrame = ...
val df3: DataFrame = ...
var union_df: DataFrame = df1.union(doCompute(df2)).union(doCompute(df3))
在你的问题中我不明白的一件事是你的函数 myRecursiveMethod
是如何递归的?根据定义,递归函数调用自身。不确定你的问题是否真的清楚。
我想用递归方法合并数据框。
我正在用递归方法进行一些计算,过滤数据并存储在一个变量中。在第二次迭代中,我将进行一些计算,然后再次将数据存储在同一个 variable.when 中,我第二次调用该方法,我的第一个结果是 vanished.Ideally 我必须将结果存储在一个临时变量中,并且我需要对所有结果进行联合,直到递归方法完成执行。
df 中的 Iteration1 输出:
Col1
14
35
df 中的 Iteration2 输出:
Col1
18
20
现在我需要最终输出,
Col1
14
35
18
20
代码:
def myRecursiveMethod(first: List[List[String]],
Inputcolumnsdummy: List[List[String]],
secondInputcolumns: List[List[String]] = {
val ongoingResult = doSomeCalculation(first,Inputcolumnsdummy, secondInputcolumns)
}
我希望我的代码应该如下所示,
def myRecursiveMethod(first: List[List[String]],
Inputcolumnsdummy: List[List[String]],
secondInputcolumns: List[List[String]]) = {
val ongoingResult = doSomeCalculation(first, Inputcolumnsdummy, secondInputcolumns)
Val temp = temp.union(ongoingResult)
}
您应该尝试:像这样使用 union
:df1.union(df2)
或 df1.union(computation(df2,...))
.
示例如下:
def doCompute(df: DataFrame): DataFrame = {
val tmp: DataFrame = ... // TODO: call to your computation method
tmp.show()
df.union(tmp)
}
val df1: DataFrame = ...
val df2: DataFrame = ...
val df3: DataFrame = ...
var union_df: DataFrame = df1.union(doCompute(df2)).union(doCompute(df3))
在你的问题中我不明白的一件事是你的函数 myRecursiveMethod
是如何递归的?根据定义,递归函数调用自身。不确定你的问题是否真的清楚。