在Pyspark中放置行

在Pyspark中放置行,pyspark,Pyspark,如何根据行编号/行索引值的值删除Pyspark中的行值 我是Pyspark(和编码)的新手——我尝试过编码一些东西,但它不起作用。您不能删除特定的列,但您可以使用filter或其别名where来筛选所需的列 import pyspark.sql.functions as F schema1 = StructType([StructField('rownumber', IntegerType(), True),StructField('name', StringType(), True)]) da

如何根据行编号/行索引值的值删除Pyspark中的行值


我是Pyspark(和编码)的新手——我尝试过编码一些东西,但它不起作用。

您不能删除特定的列,但您可以使用
filter
或其别名
where
来筛选所需的列

import pyspark.sql.functions as F
schema1 = StructType([StructField('rownumber', IntegerType(), True),StructField('name', StringType(), True)])
data1 = [(1,'a'),(2,'b'),(3,'c'),(4,'d'),(5,'e')]
df1 = spark.createDataFrame(data1, schema1)
df1.show()
+---------+----+
|rownumber|name|
+---------+----+
|        1|   a|
|        2|   b|
|        3|   c|
|        4|   d|
|        5|   e|
+---------+----+
df1.filter(F.col("rownumber").between(2,4)).show()
+---------+----+
|rownumber|name|
+---------+----+
|        2|   b|
|        3|   c|
|        4|   d|
+---------+----+
想象一下,您想“删除”年龄低于3岁的行。您可以只保留相反的行,如下所示:

df.filter(df.age >= 3)

Spark数据帧不像pandas数据帧那样具有行号或行索引值。因此,你的问题的答案是“你不能”。如果你正在寻找一个不同的答案,请先花点时间阅读。然后你的问题包括一个。那么我如何删除特定范围的行?