如何在 PySpark 中复制 Pandas 的 between_time 函数
Posted
技术标签:
【中文标题】如何在 PySpark 中复制 Pandas 的 between_time 函数【英文标题】:How to replicate the between_time function of Pandas in PySpark 【发布时间】:2020-12-12 03:42:49 【问题描述】:我想在 PySpark 中复制 Pandas 的 between_time
函数。
是否有可能因为在 Spark 中数据帧是分布式的并且没有基于日期时间的索引?
i = pd.date_range('2018-04-09', periods=4, freq='1D20min')
ts = pd.DataFrame('A': [1, 2, 3, 4], index=i)
ts.between_time('0:45', '0:15')
在 PySpark 中是否有类似的可能?
pandas.between_time - API
【问题讨论】:
【参考方案1】:如果您在 Spark 数据框中有一个时间戳列,例如 ts
,那么对于上述情况,您可以使用
import pyspark.sql.functions as F
df2 = df.filter(F.hour(F.col('ts')).between(0,0) & F.minute(F.col('ts')).between(15,45))
【讨论】:
以上是关于如何在 PySpark 中复制 Pandas 的 between_time 函数的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Pyspark 中使用 @pandas_udf 返回多个数据帧?
如何在 pyspark 中使用 pandas UDF 并在 StructType 中返回结果
如何在 pyspark.sql.functions.pandas_udf 和 pyspark.sql.functions.udf 之间进行选择?
如何在 jupyter 中像 pandas Dataframe 一样打印 Pyspark Dataframe