Spark의 sort () 대 orderBy ()

Apache Spark에서 sort ()와 orderBy ()의 차이점은 무엇입니까?

Unsplash에 Mikael Kristenson의 사진

소개

Spark DataFrame 정렬은 아마도 가장 일반적으로 사용되는 작업 중 하나 일 것입니다. sort()또는 orderBy()내장 함수를 사용하여 특정 DataFrame을 하나 이상의 열에 대해 오름차순 또는 내림차순으로 정렬 할 수 있습니다 . 두 함수 모두 Spark DataFrame에서 데이터를 정렬해야하지만 한 가지 중요한 차이점이 있습니다.

오늘의 기사에서 우리는 사이의 차이를 논의하려고 sort()하고 orderBy()다른 이상을 사용하는 경우 이해합니다.

먼저의 입증 방법 모두에 기사를 통해 사용 예제 DataFrame 만들 수 sort()및 orderBy()작업. Python API를 사용할 것이지만 오늘 논의하는 내용은 Scala에도 적용 할 수 있습니다.

df = spark.createDataFrame(
   [
      ('Andrew', 'Johnson', 'Engineering', 'UK', 34),
      ('Maria', 'Brown', 'Finance', 'US', 41),
      ('Michael', 'Stevenson', 'Sales', 'US', 31),
      ('Mark', 'Anderson', 'Engineering', 'Ireland', 28),
      ('Jen', 'White', 'Engineering', 'UK', 29)
  ],
  ['first_name', 'last_name', 'department', 'country', 'age']
)
df.show(truncate=False)
+----------+---------+-----------+--------+---+
|first_name|last_name| department||country|age|
+----------+---------+-----------+--------+---+
|    Andrew|  Johnson|Engineering|      UK| 34|
|     Maria|    Brown|    Finance|      US| 41|
|   Michael|Stevenson|      Sales|      US| 31|
|      Mark| Anderson|Engineering| Ireland| 28|
|       Jen|    White|Engineering|      UK| 29|
+----------+---------+-----------+--------+---+

이제 우리는 오름차순으로 직원의 국가와 나이를 기준으로 sort()DataFrame을 정렬하는 방법 을 사용할 수 있습니다 df.

df.sort('country', 'age').show(truncate=False)
+----------+---------+-----------+--------+---+
|first_name|last_name| department||country|age|
+----------+---------+-----------+--------+---+
|      Mark| Anderson|Engineering| Ireland| 28|
|       Jen|    White|Engineering|      UK| 29|
|    Andrew|  Johnson|Engineering|      UK| 34|
|   Michael|Stevenson|      Sales|      US| 31|
|     Maria|    Brown|    Finance|      US| 41|
+----------+---------+-----------+--------+---+

예를 들어, 직원의 경우 Jen와 Andrew인스턴스에 대한 최종 순서가 잘못되었을 수도 있습니다 다른 파티션에 저장되어 있습니다 :

+----------+---------+-----------+--------+---+
|first_name|last_name| department||country|age|
+----------+---------+-----------+--------+---+
|      Mark| Anderson|Engineering| Ireland| 28|
|    Andrew|  Johnson|Engineering|      UK| 34|
|       Jen|    White|Engineering|      UK| 29|
|   Michael|Stevenson|      Sales|      US| 31|
|     Maria|    Brown|    Finance|      US| 41|
+----------+---------+-----------+--------+---+

같은 방법으로 orderBy()직원의 국가 및 연령을 기준으로 DataFrame을 오름차순으로 주문할 수 있습니다.

df.orderBy('country', 'age').show(truncate=False)
+----------+---------+-----------+--------+---+
|first_name|last_name| department||country|age|
+----------+---------+-----------+--------+---+
|      Mark| Anderson|Engineering| Ireland| 28|
|       Jen|    White|Engineering|      UK| 29|
|    Andrew|  Johnson|Engineering|      UK| 34|
|   Michael|Stevenson|      Sales|      US| 31|
|     Maria|    Brown|    Finance|      US| 41|
+----------+---------+-----------+--------+---+

마지막 단어

양 sort()및 orderBy()기능 적어도 하나의 열을 정렬 점화 DataFrames하는데 사용될 수 있고 모든 즉 오름차순 또는 내림차순으로 순서를 원하는.

sort()orderBy()데이터가 각 파티션에서 개별적으로 정렬되므로 출력 데이터의 순서가 보장되지 않기 때문에 보다 효율적 입니다.

반면에 orderBy()모든 데이터를 단일 실행기로 수집 한 다음 정렬합니다. 즉, 출력 데이터의 순서가 보장되지만 이는 비용이 많이 드는 작업 일 수 있습니다.

따라서 순서가 그다지 중요하지 않은 데이터 프레임을 정렬해야하는 동시에 가능한 한 빨리 원하는 경우 sort()더 적합합니다. 순서가 중요한 경우 orderBy()출력 데이터가 사용자 매개 변수를 기반으로 정렬되도록 보장하는 것을 사용하십시오 .

당신은 또한 좋아할 수 있습니다

Suggested posts

도메인 이름에 대한 정보 찾기

Brian P. Hogan의 Small, Sharp 소프트웨어 도구에서 발췌

도메인 이름에 대한 정보 찾기

facebook.com에 요청하면 컴퓨터가 도메인 이름을 조회하여 해당 도메인 이름을 IP 주소로 변환하므로 컴퓨터가 해당 연결을 만들 수 있습니다.

Langchain을 사용하여 ChatGPT 플러그인을 무료로 실행하는 방법

Langchain을 사용하여 ChatGPT 플러그인을 무료로 실행하는 방법

브라우저, 코드 해석기 등과 같은 새롭고 강력한 ChatGPT 플러그인에 대해 들어보셨을 것입니다. 그러나 문제가 있습니다. 플러그인에 대한 액세스는 대기자 명단으로 제한되어 있으므로 많은 사람들이 액세스할 수 없습니다.

Related posts

작문 실력을 향상시키는 3가지 입증된 방법

글쓰기의 이점과 그렇게 하는 데 도움이 되는 전략

작문 실력을 향상시키는 3가지 입증된 방법

2022년에는 GPT-3가 출시되면서 글쓰기 능력이 덜 중요해진 것 같습니다. AI를 사용하면 글이 서투른 사람들도 양질의 직원을 생성할 수 있습니다.

Work Week에서의 학습은 생각보다 중요합니다.

Work Week에서의 학습은 생각보다 중요합니다.

우리는 종종 우리에게 좋다고 알고 있는 것을 구현하는 데 어려움을 겪고 있습니다. 중요한 다른 사람에게 우리가 그들을 사랑한다고 말하는 것부터 해적처럼 이야기하는 것을 기억하는 것까지, 그들이 이미 그런 일을 하고 있기 때문에 하루, 일주일 또는 한 달의 이벤트가 필요하지 않다고 주장하는 사람들이 항상 있을 것입니다.

도메인 이름에 대한 정보 찾기

Brian P. Hogan의 Small, Sharp 소프트웨어 도구에서 발췌

도메인 이름에 대한 정보 찾기

facebook.com에 요청하면 컴퓨터가 도메인 이름을 조회하여 해당 도메인 이름을 IP 주소로 변환하므로 컴퓨터가 해당 연결을 만들 수 있습니다.

예술은 비정치적인가?

예술은 비정치적인가?

어제 우리는 스웨덴 가수 Loreen이 트로피를 집으로 가져가서 ABBA가 대회에서 우승한 지 50년 만에 스웨덴의 왕관을 다시 가져가면서 두 번 우승한 최초의 여성이 되는 반짝반짝하고 혼란스러운 그랜드 피날레로 올해 유로비전 송 콘테스트의 문을 닫았습니다. "워털루"와 함께. 그들은 계속해서 팝 음악의 정경에서 가장 큰 행위 중 하나가 되었습니다.