열 값으로 데이터 프레임 분할 Scala

캐시

타임 스탬프 열을 기준으로 데이터 프레임을 여러 데이터 프레임으로 분할해야합니다. 따라서이 데이터 프레임이 포함해야하는 시간을 제공하고 각 데이터 프레임에 지정된 시간이 포함 된 데이터 프레임 집합을 가져옵니다.

메서드의 서명은 다음과 같습니다.

def splitDataframes(df: DataFrame, hoursNumber: Int): Seq[DataFrame]

어떻게 할 수 있습니까?

데이터 프레임의 스키마는 다음과 같습니다.

root
 |-- date_time: integer (nullable = true)
 |-- user_id: long (nullable = true)
 |-- order_id: string (nullable = true)
 |-- description: string (nullable = true)
 |-- event_date: date (nullable = true)
 |-- event_ts: timestamp (nullable = true)
 |-- event_hour: long (nullable = true)

입력 df 필드 중 일부 :

event_ts, user_id
2020-12-13 08:22:00, 1
2020-12-13 08:51:00, 2
2020-12-13 09:28:00, 1
2020-12-13 10:53:00, 3
2020-12-13 11:05:00, 1
2020-12-13 12:19:00, 2

hoursNumber = 2 인 일부 출력 df 필드 :

df1   event_ts, user_id
      2020-12-13 08:22:00, 1
      2020-12-13 08:51:00, 2
      2020-12-13 09:28:00, 1
df2   2020-12-13 10:46:00, 3
      2020-12-13 11:05:00, 1
df3   2020-12-13 12:48:00, 2
mck

타임 스탬프를 유닉스 타임 스탬프로 변환 한 다음 가장 이른 타임 스탬프와의 시간 차이를 사용하여 각 행의 ID를 계산합니다.

편집 : 시작 시간을 00:00:00부터 계산하면 솔루션이 더 간단합니다.

import org.apache.spark.sql.DataFrame

def splitDataframes(df: DataFrame, hoursNumber: Int): Seq[DataFrame] = {

    val df2 = df.withColumn(
        "event_unix_ts",
        unix_timestamp($"event_ts")
    ).withColumn(
        "grouping",
        floor($"event_unix_ts" / (3600 * hoursNumber))
    ).drop("event_unix_ts")
    
    val df_array = df2.select("grouping").distinct().collect().map(
                   x => df2.filter($"grouping" === x(0)).drop("grouping")).toSeq
    
    return df_array

}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Spark 데이터 프레임의 열을 새 행으로 분할 [Scala]

분류에서Dev

데이터 프레임을 열 값으로 두 개로 분할

분류에서Dev

열 값을 기준으로 데이터 프레임 분할

분류에서Dev

열 값을 기반으로 데이터 프레임 분할

분류에서Dev

데이터를 3 열 데이터 프레임으로 분할

분류에서Dev

열 임계 값으로 데이터 프레임 부분 설정

분류에서Dev

데이터 프레임의 배열 값을 새 데이터 프레임으로 분할-Python

분류에서Dev

열의 값에 따라 데이터 프레임을 하위 데이터 프레임으로 분할

분류에서Dev

Spark Scala 데이터 프레임에서 열 분할

분류에서Dev

열 값을 기반으로 데이터 프레임 분할 / 확장

분류에서Dev

문자열을 기반으로 데이터 프레임 분할

분류에서Dev

\를 기준으로 데이터 프레임 문자열 분할

분류에서Dev

데이터 프레임 열을 여러 열로 분할

분류에서Dev

데이터 프레임의 다중 인덱스 데이터 프레임을 열 이름으로 분할

분류에서Dev

R의 열 값 문자열을 기반으로 데이터 프레임을 두 개의 하위 데이터 프레임으로 분할

분류에서Dev

값에 따라 분할 팬더 데이터 프레임 열

분류에서Dev

한 열의 값 범위에서 데이터 프레임 분할

분류에서Dev

Scala 데이터 프레임 열을 중첩 된 JSON으로 Spark

분류에서Dev

Pandas 데이터 프레임 헤더를 여러 열로 분할

분류에서Dev

PySpark 데이터 프레임 열을 여러 개로 분할

분류에서Dev

데이터 프레임을 새 열로 분할 지원

분류에서Dev

R 열의 새 줄로 데이터 프레임 분할

분류에서Dev

여러 값이있는 Pandas 데이터 프레임 열 문자열을 별도의 행으로 분할

분류에서Dev

값과 구분 기호를 기반으로 데이터 프레임의 모든 열 분할

분류에서Dev

Pandas 데이터 프레임 열 분할

분류에서Dev

데이터 프레임의 열 분할

분류에서Dev

반복되는 열 이름으로 데이터 프레임 분할

분류에서Dev

pandas 데이터 프레임 열을 정규식으로 2로 분할

분류에서Dev

R : 데이터 프레임을 열로 분할하고 행으로 재결합

Related 관련 기사

  1. 1

    Spark 데이터 프레임의 열을 새 행으로 분할 [Scala]

  2. 2

    데이터 프레임을 열 값으로 두 개로 분할

  3. 3

    열 값을 기준으로 데이터 프레임 분할

  4. 4

    열 값을 기반으로 데이터 프레임 분할

  5. 5

    데이터를 3 열 데이터 프레임으로 분할

  6. 6

    열 임계 값으로 데이터 프레임 부분 설정

  7. 7

    데이터 프레임의 배열 값을 새 데이터 프레임으로 분할-Python

  8. 8

    열의 값에 따라 데이터 프레임을 하위 데이터 프레임으로 분할

  9. 9

    Spark Scala 데이터 프레임에서 열 분할

  10. 10

    열 값을 기반으로 데이터 프레임 분할 / 확장

  11. 11

    문자열을 기반으로 데이터 프레임 분할

  12. 12

    \를 기준으로 데이터 프레임 문자열 분할

  13. 13

    데이터 프레임 열을 여러 열로 분할

  14. 14

    데이터 프레임의 다중 인덱스 데이터 프레임을 열 이름으로 분할

  15. 15

    R의 열 값 문자열을 기반으로 데이터 프레임을 두 개의 하위 데이터 프레임으로 분할

  16. 16

    값에 따라 분할 팬더 데이터 프레임 열

  17. 17

    한 열의 값 범위에서 데이터 프레임 분할

  18. 18

    Scala 데이터 프레임 열을 중첩 된 JSON으로 Spark

  19. 19

    Pandas 데이터 프레임 헤더를 여러 열로 분할

  20. 20

    PySpark 데이터 프레임 열을 여러 개로 분할

  21. 21

    데이터 프레임을 새 열로 분할 지원

  22. 22

    R 열의 새 줄로 데이터 프레임 분할

  23. 23

    여러 값이있는 Pandas 데이터 프레임 열 문자열을 별도의 행으로 분할

  24. 24

    값과 구분 기호를 기반으로 데이터 프레임의 모든 열 분할

  25. 25

    Pandas 데이터 프레임 열 분할

  26. 26

    데이터 프레임의 열 분할

  27. 27

    반복되는 열 이름으로 데이터 프레임 분할

  28. 28

    pandas 데이터 프레임 열을 정규식으로 2로 분할

  29. 29

    R : 데이터 프레임을 열로 분할하고 행으로 재결합

뜨겁다태그

보관