【发布时间】:2023-04-09 09:20:02
【问题描述】:
如何使用pyspark 计算两个日期之间的天数(忽略周末)?
这与here 完全相同,只是我需要用pyspark 来做这个。
我尝试使用udf:
import numpy as np
from pyspark.sql.functions import udf
from pyspark.sql.types import IntegerType
@udf(returnType=IntegerType())
def dateDiffWeekdays(end, start):
return int(np.busday_count(start, end)) # numpy returns an `numpy.int64` type.
使用这个 udf 时,我收到一条错误消息:
ModuleNotFoundError: 没有名为“numpy”的模块
有谁知道如何解决这个问题?或者更好的是,在本机 pyspark 中没有 udf 的情况下解决这个问题?
编辑:我安装了numpy。在udf 之外它工作得很好。
【问题讨论】:
-
numpy是一个python依赖,spark默认不可用。在您的本地设置中,您可以执行pip install numpy。在集群设置中,它有点复杂,您还需要在集群上提供 numpy。 -
我在 Python 中安装了
numpy。我已经用过无数次了。但是如果我理解正确的话,你是说它也需要安装在 spark 集群上? -
是的,所有集群机器都需要
numpy -
您是在本地还是在集群中遇到此错误?