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)