0
Spark에서이 코드를보다 효율적으로 만드는 방법은 무엇입니까?
데이터에서 최소, 최대, 개수, 평균을 계산해야합니다.
여기
A가 Shop001 99.99
Shop001 87.15
B Shop001는 3.99
이 ...스파크에서이 코드를 최적화하는 방법은 무엇입니까?
지금 내 데이터를 구성하려고 내 샘플 데이터,
이름 숍 돈이다 Name + Shop (키)에 의해 평균, 최소, 최대, 개수를 생성합니다.
그런 다음 collect()로 결과를 얻습니다. 여기
는사람은 우아한 코딩 스타일에 대한 몇 가지 제안을 제공 할 것이다, 스파크 내 코드?def tupleDivide(y): return float(y[0])/y[1] def smin(a, b): return min(a, b) def smax(a, b): return max(a, b) raw = sgRDD.map(lambda x: getVar(parserLine(x),list_C+list_N)).cache() cnt = raw.map(lambda (x,y,z): (x+"_"+y, 1)).countByKey() sum = raw.map(lambda (x,y,z): (x+"_"+y, z)).reduceByKey(add) min = raw.map(lambda (x,y,z): (x+"_"+y, z)).reduceByKey(smin) max = raw.map(lambda (x,y,z): (x+"_"+y, z)).reduceByKey(smax) raw_cntRDD = sc.parallelize(cnt.items(),3) raw_mean = sum.join(raw_cntRDD).map(lambda (x, y): (x, tupleDivide(y)))
감사합니다.
알았어! 고마워요! – wlsherica