2017-04-14 14 views
-1

sparkの上に寄木張りのファイルがあります。私は3つの列、飛行番号、出発地の空港と出発の遅れでtempTableに変換しています。遅れていない飛行は遅延列の値が0であり、残りは飛行が遅れた分数を有する。空港ごとに遅れた便の割合を計算したいselect()with select

私がこれをやろうとしている方法の1つは、空港の合計飛行を得て、その数をその空港のために遅らせる飛行数で割ることです。ここで私が使用しているクエリです:

select Origin as cur_origin, count(Origin) as totalCount, (select count(*) FROM flightData WHERE Origin=cur_origin AND DepDelay>0) as delayedCount FROM flightData GROUP BY Origin;

P.S.上記のクエリでは、私は2つの数値を分割するのではなく、デバッグのためにそれらを表示しようとしています。

しかし、この私に与えるエラー:未解決のオペレータ集計起源

誰もが私が間違っているのか、このための他のソリューション午前ものを私に伝えることができます。

答えて

0

これを試してください。カウント(Origin)に問題があるかもしれませんが、これは列単位であるためです。

select 
    Origin as cur_origin, 
    count(Origin) as totalCount, 
    sum(if(DepDelay > 0,1,0)) as delayedCount 
FROM flightData 
GROUP BY Origin 
+0

です。それに感謝! –