gpt4 book ai didi

java - 使用java在spark中的函数之间

转载 作者:行者123 更新时间:2023-12-01 16:16:09 32 4
gpt4 key购买 nike

我有两个数据框:

 Dataframe 1
+-----------------+-----------------+
| hour_Entre | hour_Sortie |
+-----------------+-----------------+
| 18:30:00 | 05:00:00 |
| | |
+-----------------+-----------------+
Dataframe 2
+-----------------+
| hour_Tracking |
+-----------------+
| 19:30:00 |
+-----------------+

我想要获取 hour_Entre 和 hour_Sortie 之间的 hour_tracking。

我尝试了以下代码:

boolean checked = true;
try{
if(df1.select(col("heureSortie")) != null && df1.select(col("heureEntre")) !=null){
checked = checked && df2.select(col("dateTracking_hour_minute").between(df1.select(col("heureSortie")),df1.select(col("heureEntre"))));
}
} catch (Exception e) {
e.printStackTrace();
}

但我收到此错误:

Operator && cannot be applied to boolean , 'org.apache.spark.sql.Dataset<org.apache.spark.sql.Row>'

最佳答案

如果您正在寻找时差 -

第一次创建日期差异

from pyspark.sql import functions as F
df = df.withColumn('date_diff', F.datediff(F.to_date(df.hour_Entre), F.to_date(df.hour_Sortie)))

然后计算小时差 -

df = df.withColumn('hours_diff', (df.date_diff*24) + 
F.hour(df.hour_Entre) - F.hour(df.hour_Sortie))

关于java - 使用java在spark中的函数之间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62385299/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com