如何在spark上比较列的值和一个单独Dataframe上列的所有行

b4wnujal  于 2021-05-27  发布在  Spark
关注(0)|答案(1)|浏览(431)

我有那两个Dataframe。


我的目标是将第一个Dataframe上“filtereddescription”列的每个值与第二个Dataframe上“name”列的所有值进行比较。

7dl7o3gd

7dl7o3gd1#

由于您并没有提到您的逻辑的完整流程,我只是添加下面的逻辑来匹配两个表中的一列。

//load data for first dataframe.
val dfa = dfaData.withColumn("id",monotonically_increasing_id).withColumn("id",row_number().over(Window.partitionBy($"id").orderBy($"id".asc)))
//load data for second dataframe.
val dfb = dfbData.withColumn("id",monotonically_increasing_id).withColumn("id",row_number().over(Window.partitionBy($"id").orderBy($"id".asc)))

//Used cross join to match dfa columns to dfb columns.
dfa.crossJoin(dfb).withColumn("matched",when($"filtereddescription" === $"name", lit("matched")).otherwise("not matched")).show(false)

相关问题