簡體   English   中英

如何循環遍歷dataFrame的每一行,並根據條件刪除該行

[英]How to loop through each row of dataFrame, and remove the row based on a condition

我是 Spark 和 scala 的初學者。 我想知道如何循環遍歷 dataFrame 的每一行,並根據條件刪除該行。

您可以在 dataframe 上使用過濾器操作,您可以在其中指定要過濾記錄的條件。 下面是一個例子:

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

}

上述代碼的output為:

+--------+-------+---------+------+
|customer|product|promotion|cardid|
+--------+-------+---------+------+
|   Cust1|  Prod1|   Promo1|     1|
|   Cust1|  Prod1|   Promo2|     2|
+--------+-------+---------+------+

在上面的示例中,我過濾了產品列中值為“Prod1”的記錄,如下所示: df1.filter(F.col("product") === "Prod1")

過濾操作對 dataframe 的每一行進行迭代,並檢查提供的條件並保留條件為真的所有記錄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM