2016-06-27 4 views

답변

0

발 findLength = UDF 다음을 수행 숫자 열을 위해 그것을 할 수 있습니다 {(COLVALUE : 문자열) => ColValue.size}

myData.dtypes.filter(x=>x._2=="StringType").foreach(f=> 
    myData.select(avg(findLength(col(f._1)))).show()  
) 

샘플 데이터

Name|Age|email 
Hari|12|[email protected] 
Hari|12|[email protected] 
Hari|12|[email protected] 
Hari|12|[email protected] 
Hasasasi|12|[email protected] 

출력

+-------------------+ 
|AVG(scalaUDF(Name))| 
+-------------------+ 
|    4.8| 
+-------------------+ 


+--------------------+ 
|AVG(scalaUDF(email))| 
+--------------------+ 
|    16.8| 
+--------------------+ 
3
import org.apache.spark.sql.functions._ 

val avgDF = df.agg(mean(length(col("yourColumn")))) 
+0

내 목표는 String 유형의 모든 열에 대한 평균 문자열 길이를 찾는 것입니다. 이 방법은 작동하지 않습니다. 아마도 UDF를 정의해야한다고 생각하고 있습니다. – jojo