저는 스파크의 세계에 새로운면이 있습니다. 표준 편차를 계산하려고하고 다음 코드를 사용했습니다. 다음과 같이 첫 번째 사용 SparkSQL과 코드는 다음과 같습니다RDD v/s를 사용하여 표준 편차를 계산하는 방법 Python의 SparkSQL
sqlsd=spark.sql("SELECT STDDEV(temperature) as stdtemp from
washing").first().stdtemp
print(sqlsd)
을 위의 작동 미세 (내 생각) 내가 다음 코드를 사용하여이 RDD을 수행하려고 할 때 지금 6.070
과 결과를 제공 : -
def sdTemperature(df,spark):
n=float(df.count())
m=meanTemperature(df,spark)
df=df.fillna({'_id':0,'_rev':0,'count':0,'flowrate':0,'fluidlevel':0,
'frequency':0,'hardness':0,'speed':0,'temperature':0,'ts':0,'voltage':0})
rddT=df.rdd.map(lambda r: r.temperature)
c=rddT.count()
s=rddT.map(lambda x: pow(x-m,2)).sum()
print(n,c,s)
sd=sqrt(s/c)
return sd
위의 코드를 실행하면 결과가 달라집니다. 내가 얻는 가치는 53.195이다.
나는 무엇을 잘못하고 있는가?. 위에서 수행하려고하는 것은 스파크 데이터 프레임 열 온도에 대한 표준 편차를 계산하고 람다를 사용하는 것입니다. 도움에 미리
덕분에 .. 표준 편차의 두 가지 유형이 있습니다
'nulls'을 건너 뛰고 '0'으로 채우는 것은 똑같지 않습니다. 또한 수치 안정성의 문제가 있습니다. – zero323
감사합니다 - 전적으로 동의합니다. – sunny