열을 지정하는 타임스탬프가 지정된 세션 창을 생성합니다.
세션 창은 동적 창 중 하나입니다. 즉, 지정된 입력에 따라 창 길이가 달라집니다. 세션 창의 길이는 "세션 + 간격 기간의 최신 입력 타임스탬프"로 정의되므로 새 입력이 현재 세션 창에 바인딩되면 새 입력에 따라 세션 창의 종료 시간을 확장할 수 있습니다.
Windows는 마이크로초 정밀도를 지원할 수 있습니다. 월 단위의 Windows는 지원되지 않습니다.
스트리밍 쿼리의 경우 이 함수 current_timestamp 를 사용하여 처리 시간에 창을 생성할 수 있습니다.
gapDuration은 문자열(예: '1초', '1일 12시간', '2분')으로 제공됩니다. 유효한 간격 문자열은 'week', 'day', 'hour', 'minute', 'second', 'millisecond', 'microsecond'입니다.
입력 행에 따라 동적으로 간격 기간으로 평가할 수 있는 열일 수도 있습니다.
출력 열은 기본적으로 중첩된 열이 'start' 및 'end'인 'session_window'이라는 구조체로, 여기서 'start' 및 'end'는 다음과 같습니다 pyspark.sql.types.TimestampType.
해당 Databricks SQL 함수는 그룹화 식을 참조session_window하세요.
문법
from pyspark.databricks.sql import functions as dbf
dbf.session_window(timeColumn=<timeColumn>, gapDuration=<gapDuration>)
매개 변수
| 매개 변수 | 유형 | Description |
|---|---|---|
timeColumn |
pyspark.sql.Column 또는 str |
시간별 창에 대한 타임스탬프로 사용할 열 이름 또는 열입니다. 시간 열은 TimestampType 또는 TimestampNTZType이어야 합니다. |
gapDuration |
pyspark.sql.Column 또는 literal string |
세션의 시간 제한을 지정하는 Python 문자열 리터럴 또는 열입니다. 정적 값(예: 10 minutes1 second정적 값) 또는 입력 행에 따라 동적으로 간격 기간을 지정하는 식/UDF일 수 있습니다. |
Returns
pyspark.sql.Column: 계산된 결과의 열입니다.
예시
from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([('2016-03-11 09:00:07', 1)], ['dt', 'v'])
df2 = df.groupBy(dbf.session_window('dt', '5 seconds')).agg(dbf.sum('v'))
df2.show(truncate=False)
df2.printSchema()