我目前正尝试将df1与df2连接,其中每个数据框都有一个名为distance的列,以米为单位进行测量。我想加入这两个dataframes.distance之间的差异是< = 10米
的地方像这样的东西
def1.join(df2, df1("distance") - df2("distance") <= 10).show()
我试图查找API文档,但我找不到足够的示例。
答案 0 :(得分:1)
您可以在联接中使用udf来实现此目的。
val df1 = sc.parallelize(Array(1,2,3)).toDF("distance1")
val df2 = sc.parallelize(Array(10,12,14)).toDF("distance2")
val distanceUdf = spark.udf.register("distanceUdf", ( in1 : Int, in2 : Int) => {
Math.abs(in1 - in2)
})
df1.join(df2, distanceUdf(col("distance1"), col("distance2")) <= 10, "inner").show()