Scala 如何循环遍历数据帧的每一行,并根据条件删除该行

Scala 如何循环遍历数据帧的每一行,并根据条件删除该行,scala,dataframe,apache-spark,for-loop,if-statement,Scala,Dataframe,Apache Spark,For Loop,If Statement,我是Spark&scala的初学者。我想知道如何循环遍历数据帧的每一行,并根据条件删除该行。您可以对数据帧使用筛选操作,在该操作中,您可以指定要根据其筛选记录的条件。以下是一个例子: import org.apache.spark.sql.SparkSession import org.apache.spark.sql.{DataFrame, functions => F} object Example extends App { val spark = SparkSession

我是Spark&scala的初学者。我想知道如何循环遍历数据帧的每一行,并根据条件删除该行。

您可以对数据帧使用筛选操作,在该操作中,您可以指定要根据其筛选记录的条件。以下是一个例子:

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|
+--------+-------+---------+------+
在上面的示例中,我过滤了product列中的值为“Prod1”的记录,如图所示:
df1.filter(F.col(“product”)==“Prod1”)


筛选操作在数据帧的每一行上迭代,检查提供的条件,并保留条件为真的所有记录。

类似于SQL,使用
https://spark.apache.org/docs/latest/api/scala/index.html#org.apache.spark.sql.Dataset.where
你好,山姆,我相信您希望对数据帧?执行一些过滤操作?。如果是,您可以浏览下面的帖子,它将帮助您添加一些示例输入和预期输出?我有一个名为Data的数据帧,然后我想使用for循环迭代此数据帧,根据for循环每次迭代的条件删除被视为噪声数据的行。下面是代码<代码>用于(i)