У меня есть набор переменных, которые это отметка времени и сеанс.Как бы я сделал индикатор нового сеанса, который равен 1 для первого сеанса и 0 для каждого экземпляра этого сеанса после этого.Например ...
from pyspark.sql import functions as F
df = sqlContext.createDataFrame([
("a", "44", "2018-01-08 09:01:01.085193"),
("a", "44", "2018-01-08 09:01:01.086280"),
("a", "44", "2018-01-08 09:01:01.087681"),
("a", "95", "2018-01-15 12:01:01.544710"),
("a", "95", "2018-01-15 13:01:01.545991"),
], ["person_id", "session_id", "timestamp"])
df = df.withColumn('unix_ts',F.unix_timestamp(df.timestamp, 'yyyy-MM-dd HH:mm:ss'))
df = df.withColumn("DayOfWeek",F.date_format(df.timestamp, 'EEEE'))
df.show()
Выход
+---------+----------+--------------------+----------+---------+
|person_id|session_id| timestamp| unix_ts|DayOfWeek|
+---------+----------+--------------------+----------+---------+
| a| 44|2018-01-08 09:01:...|1515423661| Monday|
| a| 44|2018-01-08 09:01:...|1515423661| Monday|
| a| 44|2018-01-08 09:01:...|1515423661| Monday|
| a| 95|2018-01-15 12:01:...|1516039261| Monday|
| a| 95|2018-01-15 13:01:...|1516042861| Monday|
+---------+----------+--------------------+----------+---------+
Я хочу добавить столбец с таким выводом:
+---------+----------+--------------------+----------+---------+----------+
|person_id|session_id| timestamp| unix_ts|DayOfWeek| FirstInd |
+---------+----------+--------------------+----------+---------+----------+
| a| 44|2018-01-08 09:01:...|1515423661| Monday| 1 |
| a| 44|2018-01-08 09:01:...|1515423661| Monday| 0 |
| a| 44|2018-01-08 09:01:...|1515423661| Monday| 0 |
| a| 95|2018-01-15 12:01:...|1516039261| Monday| 1 |
| a| 95|2018-01-15 13:01:...|1516042861| Monday| 0 |
+---------+----------+--------------------+----------+---------+----------+