2017-10-20 10 views
2

sparkを使用してCSVファイルから降順を取得し、整数に丸めたいとします。zhvi平均を降順で並べる方法は?

しかし、コードの最後にsort(desc("Zhvi"))を試してみます。それは常に私にエラーを与える。

from pyspark.sql.functions import col, desc 
stateByZhvi = home.select('State','Zhvi').groupBy((col("State"))).avg("Zhvi").show() 

と私の結果の一部:

+-----+------------------+ 
|State|   avg(Zhvi)| 
+-----+------------------+ 
| AZ|246687.01298701297| 
| SC|143188.94736842104| 
| LA|159991.74311926606| 
| MN|236449.40239043825| 
| NJ| 367156.5637065637| 
| DC| 586109.5238095238| 
| OR| 306646.3768115942| 
| VA| 282764.4986449864| 

いずれかがで助けることができますか?別の問題があるかもしれません

home.createOrReplaceTempView("home") 

spark.sql("select State, round(avg(Zhvi)) as avg_Zhvi from home group by State order by 2 desc").show() 
+0

グループ化された平均データをソート(desc( "Zhvi"))します。 ? – Suresh

答えて

0

名前がavg関数の後に変更されました "|状態| 平均(Zhvi) |"

ありがとう

+0

OPがDataFrame APIを使用していて、解決策が存在する場合、誰もSQLに戻すのはなぜですか? –

+0

@JacekLaskowski。主に、以前のDBAと同じように私にとってずっと便利です。欠点はありますか? DataFrame APIはSQLに比べてより使いやすいですか? – MaxU

+0

唯一の欠点は、OPが非SQL/DataFrameベースのソリューションについて質問したことです。 –

2
// input dataframe 
+-----+------------------+ 
|State|    avg| 
+-----+------------------+ 
| AZ|246687.01298701297| 
| SC|143188.94736842104| 
| LA|159991.74311926606| 
+-----+------------------+ 

df.orderBy(desc("avg")).show() 

// 
+-----+------------------+ 
|State|    avg| 
+-----+------------------+ 
| AZ|246687.01298701297| 
| LA|159991.74311926606| 
| SC|143188.94736842104| 
+-----+------------------+ 

、あなたが、しかし、列を

を "ソート(DESC(" Zhviを "))" を使用しているようだ:SQLを使用してについて何

関連する問題