Как l oop через каждую строку dataFrame, и удалить строку на основе условия - PullRequest
0 голосов
/ 01 мая 2020

Я новичок в Spark & ​​scala. Я хотел бы знать, как l oop через каждую строку dataFrame, и удалить строку на основе условия.

1 Ответ

0 голосов
/ 02 мая 2020

Вы можете использовать операцию фильтрации на фрейме данных, в котором вы можете указать условие, на основе которого вы хотите фильтровать запись. Ниже приведен пример:

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")

Операция фильтрации повторяется в каждой строке кадра данных, проверяет предоставленное условие и сохраняет все записи там, где условие выполняется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...