>

3 열 x, y 및 z가있는 데이터 프레임이 있습니다. 결과로 세 열을 모두 가져오고 싶지만 z 열에서 큐브를 만들고 싶지 않습니다.

할 수있는 방법이 있습니까?

P.S. -(방금 3 개의 열로 예제를 제공했지만 열 목록이 너무 많으므로 GROUP SET은 옵션이 아닙니다).

예-

val df = Seq (( "1", "x", "a"), ( "1", "v", "b"), ( "3", "x", "c")) .toDF ( "col1", "col2", "col3")

val list = Seq ( "col1", "col2"). map (e =>col (e))

// 이제 col3 non cubed를 선택하고 싶습니다 (기본적으로 조합을 원하지 않습니다) // col3은 내가 달성하고자하는 큐브의 일부가 아니기 때문에 col3을 전혀 선택하지 않을 것이다

디스플레이 (df.select ($"col1", $"col2", $"col3"). cube (list : _ *). agg (sum ( "col1")))


  • 답변 # 1

    Cube는 GroupBY의 확장으로, 그룹화하는 데 사용되는 다양한 열 조합에 대한 집계 결과를 얻을 수 있습니다. 다음은 groupBy를 사용하여 달성 할 수있는 예입니다.

    df.cube($"col1",$"col2").agg(first($"col3").as("col3")).show
    
    

    Shaido가 제안한대로 예상 결과를 공유하십시오.

  • 이전 c ++ 모범 사례 - uint8_t, uint16_t, uint32_t, float을 허용하는 함수
  • 다음 Dynamics 365에서 JavaScript를 사용하여 "완료"단추를 클릭 할 때 약속을 "완료"로 표시하는 방법