У меня есть два фрейма данных, каждый из которых содержит около миллиона записей, и я хочу добавить True или false к каждой строке на основе df1 при частичном совпадении столбца с другим столбцом в df.
У меня естьРассматривал написание UDF, а затем сравнивал строки из обоих столбцов, но это не работает
var df1 = spark.read.format("csv").option("header", "true").option("delimiter", "\t").load("hdfs://XXXXX.txt")
var df2 = spark.read.format("csv").option("header", "true").option("delimiter", "\t").load("YYYYYYY.txt")
var desc =df2.select("SHORT_DESC").map(_.getString(0)).collect.toList
var desc_str = desc.mkString(" ")
def matchBoth(s:String ,s1: String) : Boolean ={
if(s1.contains(s)) true
else false
}
var contains = udf(matchBoth _)
var df3=df1.withColumn("flag",contains(lower($"Col45"),lit(desc_str.toLowerCase)))