python - Pyspark 导入 Column 模块以使用 gt 或 geq

标签 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 表达式有什么技巧吗?

最佳答案

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

关于python - Pyspark 导入 Column 模块以使用 gt 或 geq,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44315535/

相关文章:

python - pd.melt() 字典/一系列数据帧

python - 对 MNIST 数据集进行标准化和缩放的正确方法

python - Pandas 数据框按日期排序

Python:当它不是一个选项时如何传递参数?

java - 如何在Spark 1.3.1中使用Java读取AVRO数据?

python - 如何将 4 个多索引级别行层次结构从 excel 上传到 pandas 数据框?

python - 如何对 pandas.DataFrame 中的每一行进行明确排名

python - 如何在pyspark中将spark数据框保存为没有行的文本文件?

scala - 大量插入到 HBase

R:根据一天中的时间有效地对数据框进行子集化