집 >데이터 베이스 >MySQL 튜토리얼 >Spark DataFrame GroupBy 이후에 집계되지 않은 열을 유지하는 방법은 무엇입니까?
Spark DataFrame GroupBy에서 집계되지 않은 열을 보존하는 방법
DataFrame의 groupBy 메서드를 사용하여 데이터를 집계할 때 결과 DataFrame에는 그룹만 포함됩니다. - 키 및 집계된 값 기준. 그러나 경우에 따라 원본 DataFrame의 집계되지 않은 열도 결과에 포함하는 것이 바람직할 수 있습니다.
Spark SQL의 제한
Spark SQL은 다음과 같습니다. 집계 쿼리에 추가 열을 허용하지 않는 1999년 이전 SQL의 규칙입니다. count와 같은 집계는 여러 열에 적용할 때 잘 정의되지 않은 결과를 생성하므로 이러한 쿼리를 처리하는 서로 다른 시스템은 다양한 동작을 나타냅니다.
해결책:
비를 유지하려면 -Spark DataFrame 그룹의 집계 열에는 여러 가지가 있습니다. 옵션:
val aggregatedDf = df.groupBy(df("age")).agg(Map("id" -> "count")) val joinedDf = aggregatedDf.join(df, Seq("age"), "left")
import org.apache.spark.sql.expressions.Window val windowSpec = Window.partitionBy(df("age")) val aggregatedDf = df.withColumn("name", first(df("name")).over(windowSpec)) .groupBy(df("age")).agg(Map("id" -> "count"))
위 내용은 Spark DataFrame GroupBy 이후에 집계되지 않은 열을 유지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!