많은 데이터가 있으며 카디널리티 [20k, 200k +]의 파티션으로 실험했습니다.Spark :: KMeans가 takeSample()을 두 번 호출합니까?
from pyspark.mllib.clustering import KMeans, KMeansModel
C0 = KMeans.train(first, 8192, initializationMode='random', maxIterations=10, seed=None)
C0 = KMeans.train(second, 8192, initializationMode='random', maxIterations=10, seed=None)
나는 initRandom() 한 번 takeSample()
를 호출하는 것을 볼 수 :
나는 그런 식으로 부른다.
그런 다음 takeSample() 구현은 그 자체를 호출하지 않는 것처럼 보입니다. 따라서 KMeans()
은 takeSample()
을 한 번 호출합니다. 그렇다면 모니터에 KMeans()
당 두 개의 takeSample()
이 표시되는 이유는 무엇입니까?
참고 : I는 KMeans()
더 실행하고, 그들 모두는 데이터 .cache()
'D 나 있지 않은 관계없이 두 takeSample()
S를 호출한다.
또한, 호출 될 수 takeSample()
에 영향을주지 않습니다 파티션의 수, 그것은 (내가 업그레이드 할 수 없습니다) 2.
내가 스파크 1.6.2을 사용하고 상수이고 내 응용 프로그램이있는 경우, 파이썬에 그게 중요해!
내가이 불꽃 개발자들의 메일 링리스트에이 문제를 가져왔다, 그래서 업데이트하고 있습니다 : 1 takeSample()
의
세부 사항 : 2 takeSample()
의
세부 사항 :
동일한 코드가 실행되는 것을 볼 수 있습니다. 스파크의 메일 링리스트에 Shivaram 벤 카타 라만에 의해 제안