#apache-spark #pyspark #apache-spark-sql
#apache-spark #pyspark #apache-spark-sql
Вопрос:
У меня есть df с данными о продукте со следующей схемой
root
|-- Creator: string (nullable = true)
|-- Created_datetime: timestamp (nullable = true)
|-- Last_modified_datetime: timestamp (nullable = true)
|-- Product_name: string (nullable = true)
столбцы Created_datetime
выглядят следующим образом
-------------------
| Created_datetime|
-------------------
|2019-10-12 17:09:18|
|2019-12-03 07:02:07|
|2020-01-16 23:10:08|
Теперь я хотел бы извлечь среднее значение (или ближайшее значение к среднему существующему) в Created_datetime
столбце. Как этого можно достичь?
Ответ №1:
Когда вы вычисляете среднее значение timestamp
столбца, оно дает вам среднее unix timestamp (long)
значение. Приведите его обратно к timestamp
:
from pyspark.sql.functions import *
from pyspark.sql import functions as F
df.agg(F.avg("Created_datetime").cast("timestamp").alias("avg_created_datetime")).show()
--------------------
|avg_created_datetime|
--------------------
| 2019-11-30 23:27:11|
--------------------