是否有任何特定的方法可以从Apache Spark上的数据集中删除记录?或者有没有其他方法可以实现它?
答案 0 :(得分:3)
您可以使用filter
方法生成没有这些记录的新数据集。
请注意,数据集是不可变的,因此您无法修改它们(即删除记录)。
答案 1 :(得分:0)
Spark中的DataFrame就像RDD一样,它们本质上是一个不可变的数据结构。因此,诸如创建新列或删除行,或者尝试通过索引访问DataFrame中的单个元素之类的东西不可能存在,只是因为这种做法违背了Spark的不可变RDD的原则。
您唯一能想到的就是使用过滤器
等转换功能将其转换为您想要的数据框val df = spark.read.json(" examples / src / main / test / employee.json")
//将DataFrame注册为SQL临时视图 df.createOrReplaceTempView("雇员&#34)
val sqlDF = spark.sql(" SELECT * FROM employee where customer_id!= 002")
使用此代码,您可以删除具有customer_id = 002的记录,并可以将过滤后的记录写入文件或表格中
sqlDF.createOrReplaceTempView("员工")//创建员工视图
sqlDF.write.format(" parquet")。save(" employee.parquet")//保存镶木地板文件