2017-12-26 5 views
0

저는 SQL과 Apache Spark을 배우기 시작했습니다.Apache Spark : 성공률 쿼리

Spark에서 SQL 테이블을 가져 왔습니다.

이제 '예'일 필요가있는 필드를 기준으로 성공률을 찾아야합니다.

그래서 나는 '예'와 같은 특정 필드가 행 수로 나눈 행의 총 수를 찾을 필요가

나는 개별적으로 결과를 찾을 수 있었다 그러나이 두 개의 쿼리를 결합하는 방법을 알고하지 않았다 .

sqlContext.sql("select count(*) from customers") 

res51: org.apache.spark.sql.DataFrame = [_c0: bigint] 

sqlContext.sql("select count(*) from customers where custSub = 'yes'") 

res52: org.apache.spark.sql.DataFrame = [_c0: bigint] 

나는 하나의 쿼리를 사용하여 결과를 찾거나 내가 개별 쿼리의 결과를 저장 한 후 작업을 수행해야 할 수 있습니다.

도와 주실 수 있습니까?

답변

0

이렇게하려면 조건부 집계를 사용할 수 있습니다. 이것은 잘 작동

select avg(case when custSub = 'yes' then 1.0 else 0.0 end) as rate 
from customers; 
+0

: 여기

sqlContext.sql("""select count(case when custSub = 'yes' then 1 end)/count(*) from customers """) 

0

avg()를 사용하여 속도를 얻을 수있는 좋은 약간의 트릭이다. 고맙습니다