以下是我的日期框的值:
+-------+----------+
| ID| Date_Desc|
+-------+----------+
|8951354|2012-12-31|
|8951141|2012-12-31|
|8952745|2012-12-31|
|8952223|2012-12-31|
|8951608|2012-12-31|
|8950793|2012-12-31|
|8950760|2012-12-31|
|8951611|2012-12-31|
|8951802|2012-12-31|
|8950706|2012-12-31|
|8951585|2012-12-31|
|8951230|2012-12-31|
|8955530|2012-12-31|
|8950570|2012-12-31|
|8954231|2012-12-31|
|8950703|2012-12-31|
|8954418|2012-12-31|
|8951685|2012-12-31|
|8950586|2012-12-31|
|8951367|2012-12-31|
+-------+----------+
我尝试在pyspark中创建日期列的中值:
df1 = df1.groupby('Date_Desc').agg(f.expr('percentile(ID, array(0.25))')[0].alias('%25'),
f.expr('percentile(ID, array(0.50))')[0].alias('%50'),
f.expr('percentile(ID, array(0.75))')[0].alias('%75'))
但我发现这是个错误:
py4jjavaerror:调用o198.showstring时出错:org.apache.spark.sparkexception:作业因阶段失败而中止:阶段29.0中的任务1失败1次,最近的失败:阶段29.0中的任务1.0丢失(tid 427,5bddc80133f,executor driver):org.apache.spark.sparkupgradeexception:由于spark 3.0的升级,您可能会得到不同的结果:无法在新解析器中解析'11/23/04 9:00'。您可以将spark.sql.legacy.timeparserpolicy设置为legacy以恢复spark 3.0之前的行为,或者设置为corrected并将其视为无效的日期时间字符串。
1条答案
按热度按时间wfypjpf41#
带Spark≥ 3.1.0 :