Pyspark 导入列模块以使用 gt 或 geq

Posted

技术标签:

【中文标题】Pyspark 导入列模块以使用 gt 或 geq【英文标题】:Pyspark Importing Column module to use gt or geq 【发布时间】:2017-06-01 19:24:13 【问题描述】:

我正在使用 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】:

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|
# +---+

【讨论】:

以上是关于Pyspark 导入列模块以使用 gt 或 geq的主要内容,如果未能解决你的问题,请参考以下文章

混合模式 CSV 导入 Pyspark

无法导入 pyspark 统计模块

pyspark 数据框比较以根据关键字段查找列差异

ValueError:尝试在 pyspark 中的非包中进行相对导入/无法找到 kmodes 模块(pyspark)

导入pyspark ETL模块并使用python子进程作为子进程运行时出错

导入 Pyspark Delta Lake 模块时未找到模块错误