Apache Spark를 사용하여 중앙값 및 분위수 배포
IPython 및 Spark를 사용하여 큰 정수 RDD의 분산 중앙값 계산에 적합한 접근 방식은 정렬입니다. RDD를 찾은 다음 중간 요소에 액세스합니다. RDD를 정렬하려면 sortBy() 메서드를 사용하세요. 중앙값을 찾으려면 다음 단계를 수행하십시오.
분위수의 경우 Spark 2.0에 도입된 aboutQuantile() 메서드를 사용하거나 Greenwald-Khanna 알고리즘을 사용하여 사용자 정의 코드를 생성할 수 있습니다. 이 함수는 지정된 상대 오차를 사용하여 분위수를 계산합니다.
사용자 정의 분위수 계산: 다음은 분위수 추정을 위한 사용자 정의 PySpark 함수입니다.
<code class="python">def quantile(rdd, p, sample=None, seed=None): # ... (function implementation as provided in the original question)</code>
정확한 분위수 계산 (Spark < 2.0):
정확성이 가장 중요하다면 NumPy를 사용하여 로컬에서 분위수를 수집하고 계산하는 것을 고려해 보세요. 이 접근 방식은 종종 더 효율적이며 분산 계산을 방지합니다. 그러나 메모리 요구 사항은 상당할 수 있습니다.
Hive UDAF Quantile:
HiveContext를 정수 또는 연속 값과 함께 사용하는 경우 Hive UDAF는 Quantile 추정을 위한 또 다른 옵션을 제공합니다. 이러한 함수는 DataFrame에 대한 SQL 쿼리를 통해 액세스할 수 있습니다.
<code class="sql">sqlContext.sql("SELECT percentile_approx(x, 0.5) FROM df")</code>
위 내용은 Apache Spark를 사용하여 대규모 데이터세트의 중앙값과 분위수를 어떻게 효율적으로 계산할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!