Pyspark导入列模块使用gt或geq

时间:2017-06-01 19:24:14

标签: python apache-spark dataframe pyspark

我正在使用Spark 2.0.0 Filtering a spark dataframe based on date

来关注此解决方案

如果没有Column模块,当我尝试使用表达式gt时,会出现以下错误。

DataFrame' object has no attribute 'gt'

我尝试导入Column模块以使用lt,gt,geq等表达式。

from pyspark.sql.column import *

我收到错误:

AttributeError:'module'对象没有属性'DataFrame'

有关如何使用gt表达式的任何提示?

1 个答案:

答案 0 :(得分:2)

pyspark不支持这些功能,但您仍然可以使用operator模块,如下所示:

>>> from operator import ge
>>> from pyspark.sql import functions as F
>>> df = spark.range(1, 50)
>>> df.filter(ge(df.id, F.lit(45))).show()
# +---+
# | id|
# +---+
# | 45|
# | 46|
# | 47|
# | 48|
# | 49|
# +---+

或者您甚至可以使用>=运算符:

>>> df.filter(df.id >= F.lit(45)).show()
# +---+
# | id|
# +---+
# | 45|
# | 46|
# | 47|
# | 48|
# | 49|
# +---+