> 데이터 베이스 > MySQL 튜토리얼 > GroupBy 작업 후 Spark DataFrame에 추가 열을 포함하려면 어떻게 해야 합니까?

GroupBy 작업 후 Spark DataFrame에 추가 열을 포함하려면 어떻게 해야 합니까?

Barbara Streisand
풀어 주다: 2024-12-30 10:29:08
원래의
479명이 탐색했습니다.

How Can I Include Additional Columns in My Spark DataFrame After a GroupBy Operation?

Spark DataFrame GroupBy에서 추가 열을 얻는 대체 방법

Spark DataFrame에서 groupBy 작업을 수행할 때 다음 문제만 발생할 수 있습니다. 원본에서 다른 열을 제외하고 그룹화 열과 집계 함수의 결과를 검색합니다. DataFrame.

이 문제를 해결하려면 다음 두 가지 기본 접근 방식을 고려할 수 있습니다.

  1. 집계된 결과를 원본 테이블과 조인:

Spark SQL은 SQL:1999 이전 규칙을 준수하여 집계 쿼리에 추가 열을 포함하는 것을 금지합니다. 따라서 필요한 데이터를 집계한 후 이를 원래 DataFrame에 다시 조인할 수 있습니다. 이는 아래와 같이 selectExpr 및 Join 메소드를 사용하여 수행할 수 있습니다.

// Aggregate the data
val aggDF = df.groupBy(df("age")).agg(Map("id" -> "count"))

// Rename the aggregate function's result column for clarity
val renamedAggDF = aggDF.withColumnRenamed("count(id)", "id_count")

// Join the aggregated results with the original DataFrame
val joinedDF = df.join(renamedAggDF, df("age") === renamedAggDF("age"))
로그인 후 복사
  1. 창 함수 사용:

또는 다음을 수행할 수 있습니다. 창 기능을 활용하여 추가 열을 계산하고 그룹화된 DataFrame 내에 보존합니다. 이 방법에는 주로 그룹화 열에 대한 창 프레임을 정의하고 집계 함수를 적용하여 원하는 데이터를 검색하는 작업이 포함됩니다.

// Get the row number within each age group
val window = Window.partitionBy(df("age")).orderBy(df("age"))

// Use the window function to calculate the cumulative count of ids
val dfWithWindow = df.withColumn("id_count", count("id").over(window))
로그인 후 복사

이러한 기술을 사용하고 나면 필요한 추가 열을 검색하는 동시에 필요한 추가 열을 검색할 수 있습니다. Spark DataFrame에서 groupBy 작업을 수행합니다.

위 내용은 GroupBy 작업 후 Spark DataFrame에 추가 열을 포함하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿