Вы можете использовать операцию фильтрации на фрейме данных, в котором вы можете указать условие, на основе которого вы хотите фильтровать запись. Ниже приведен пример:
import org.apache.spark.sql.SparkSession
import org.apache.spark.sql.{DataFrame, functions => F}
object Example extends App {
val spark = SparkSession.builder.appName("Simple Application").master("local")
.getOrCreate()
import spark.implicits._
val df1 = spark.sparkContext.parallelize(
List(
("Cust1", "Prod1", "Promo1", 1),
("Cust1", "Prod1", "Promo2", 2),
("Cust2", "Prod5", "Promo4", 11),
("Cust2", "Prod8", "Promo4", 12),
("Cust3", "Prod3", "Promo9", 14),
("Cust3", "Prod2", "Promo6", 13)
)).toDF("customer", "product", "promotion", "cardid")
.show()
}
Вывод приведенного выше кода:
+--------+-------+---------+------+
|customer|product|promotion|cardid|
+--------+-------+---------+------+
| Cust1| Prod1| Promo1| 1|
| Cust1| Prod1| Promo2| 2|
+--------+-------+---------+------+
В приведенном выше примере я отфильтровал записи, где значение в столбце продукта равно «Prod1», как видно in: df1.filter(F.col("product") === "Prod1")
Операция фильтрации повторяется в каждой строке кадра данных, проверяет предоставленное условие и сохраняет все записи там, где условие выполняется.