在pyspark中为`filter()`指定列的非笨拙方法

时间:2017-03-20 19:19:02

标签: apache-spark pyspark

我想读取一个数据帧,它基于条件“private == 1”(使用spark 2.1)。我知道我可以用两行来完成,比如

 tmp = spark.read.parquet(if_name)
 data = tmp.filter(tmp.private == 1)

但是,在sparkR中,我可以将其作为单行代码,而不需要临时tmp数据框,如

data = read.parquet(if_name) %>% filter(column("private") == 1)

有没有办法在pyspark中实现相同的功能(函数[Cc]olumn似乎未定义)?

1 个答案:

答案 0 :(得分:0)

您可以使用列:

from pyspark.sql.functions import col
spark.read.parquet(if_name).filter(col("private") == 1)