Saltar al contenido

Diferencia de fecha entre filas consecutivas – Pyspark Dataframe

Hacemos una verificación profunda cada sección en nuestro espacio con el objetivo de mostrarte siempre la información certera y actualizada.

Solución:

Otra forma podría ser:

from pyspark.sql.functions import lag
from pyspark.sql.window import Window

df.withColumn("time_intertweet",(df.date.cast("bigint") - lag(df.date.cast("bigint"), 1)
.over(Window.partitionBy("user_‌​id")
.orderBy("date")‌​))
.cast("bigint"))

Como esto:

df.registerTempTable("df")

sqlContext.sql("""
     SELECT *, CAST(date AS bigint) - CAST(lag(date, 1) OVER (
              PARTITION BY user_id ORDER BY date) AS bigint) 
     FROM df""")

EDITADO gracias a @cool_kid

La respuesta de @Joesemy es realmente buena, pero no funcionó para mí porque cast (“bigint”) arrojó un error. Así que usé la función dateiff de la módulo pyspark.sql.functions de esta manera y funcionó:

from pyspark.sql.functions import *
from pyspark.sql.window import Window

df.withColumn("time_intertweet", datediff(df.date, lag(df.date, 1)
    .over(Window.partitionBy("user_‌​id")
    .orderBy("date")‌​)))

Eres capaz de avalar nuestro análisis ejecutando un comentario o puntuándolo te damos las gracias.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *