你好,我是spark和scala的新手,我有三个类似的Dataframe,如下所示:
df1:
+--------+-------+-------+-------+
| Country|1/22/20|1/23/20|1/24/20|
+--------+-------+-------+-------+
| Chad| 1| 0| 5|
+--------+-------+-------+-------+
|Paraguay| 4| 6| 3|
+--------+-------+-------+-------+
| Russia| 0| 0| 1|
+--------+-------+-------+-------+
df2 and d3 are exactly similar just with different values
我想对df1的每一行应用一个函数,但我还需要从其他两个Dataframe中选择同一行(使用country作为键),因为我需要所选行作为要应用的函数的输入参数。我想用
df1.map{ r =>
val selectedRowDf2 = selectRow using r at column "Country" ...
val selectedRowDf3 = selectRow using r at column "Country" ...
r.apply(functionToApply(r, selectedRowDf2, selectedRowDf3)
}
我也尝试了map,但出现了如下错误:
Error:(238, 23) not enough arguments for method map: (implicit evidence$6: org.apache.spark.sql.Encoder[Unit])org.apache.spark.sql.Dataset[Unit].
Unspecified value parameter evidence$6.
df1.map{
1条答案
按热度按时间i7uaboj41#
一种可能的方法是在每个dataframe列后面附加一个键来唯一地标识这些列,最后使用country列将所有dataframe合并到一个dataframe中。可以对合并数据场的每一行执行所需的操作。