Я пытаюсь объединить два фрейма данных, а затем применить к нему аналогичную операцию.Но это не возвращает никакого значения.Я хочу сделать здесь образец соответствия.Любое предположение, что я делаю здесь неправильно.
import org.apache.spark._
import org.apache.spark.sql.Row
val upcTable = spark.sqlContext.sparkContext.parallelize(Seq(
Row(1, 50, 100),
Row(2, 60, 200),
Row(36, 70, 300),
Row(45, 80, 400)
))
val lookupUpc = spark.sqlContext.sparkContext.parallelize(Seq(
Row(3, 70, 300),
Row(4, 80, 400)
))
val upcDf = spark.sqlContext.createDataFrame(upcTable, StructType(Seq(
StructField("U_ID", StringType, nullable = false),
StructField("V_ID", IntegerType, nullable = false),
StructField("R_ID", IntegerType, nullable = false))))
val lookupDf = spark.sqlContext.createDataFrame(lookupUpc, StructType(Seq(
StructField("U_ID", StringType, nullable = false),
StructField("V_ID", IntegerType, nullable = false))))
lookupDf.show()
val joinDf = upcDf.join(lookupDf,Seq("V_ID"),"inner").filter(upcDf("U_ID").like("%lookupDf(U_ID)")).select(upcDf("U_ID"),upcDf("V_ID"),upcDf("R_ID")).show()
Здесь я хотел 36 и 45 от upcDf.