我想使用PySpark
计算每个序列号的持续时间,以便可以过滤超过2天的序列号。
url="https://gist.githubusercontent.com/JishanAhmed2019/e464ca4da5c871428ca9ed9264467aa0/raw/da3921c1953fefbc66dddc3ce238dac53142dba8/failure.csv"
from pyspark import SparkFiles
spark.sparkContext.addFile(url)
df=spark.read.csv(SparkFiles.get("failure.csv"), header=True,sep='\t')
在Pandas中,我们用途:
df['Duartion'] = df.groupby('serial_number')['date'].apply(lambda x: x.dt.date - x.min().date()).dt.days
要添加持续时间列,如下所示:
然后我可以过滤创建dfNew
:
dfNew=df.loc[(df['diff'] >= 2)]
如何使用PySpark
实现同样的功能?
1条答案
按热度按时间vybvopom1#
您可以通过将window function与datediff结合使用来实现此目的。