1

複数の列でSUMを実行していますが、それらの列はSELECTリストに含めたいと考えています。Dataframe SELECTリスト内の別名列を取得する方法

以下

は私の仕事です:

val df=df0 
          .join(df1, df1("Col1")<=>df0("Col1")) 
          .filter((df1("Colum")==="00") 
          .groupBy(df1("Col1"),df1("Col1")) 
          .agg(sum(df1("Amount").alias("Amount1")),sum(df1("Amount2").alias("Amount2"))) 
          .select(
             df1("Col1").alias("co11"), 
             df1("Col2").alias("Col2"), 
             Amount1, Amount2 --getting error here 
             ) 

SELECTリスト内のエイリアス列を含めるには?

答えて

1

使用col機能や'

import org.apache.spark.sql.functions._ 
import spark.implicits._ 
val df=df0 
    .join(df1, df1("Col1")<=>df0("Col1")) 
    .filter((df1("Colum")==="00") 
    .groupBy(df1("Col1"),df1("Col1")) 
    .agg(sum(df1("Amount")).alias("Amount1"),sum(df1("Amount2")).alias("Amount2")) 
    .select(
     df1("Col1").alias("co11"), 
     df1("Col2").alias("Col2"), 
     col("Amount1"), 'Amount2 
    ) 
+0

は、私が試したが、取得エラー "Userクラスは例外投げた:org.apache.spark.sql.AnalysisException: '' Amount1'' 与えられた入力列を解決することはできません" – sks

+0

@sksを - 私は答えを修正しました。エイリアスの順序が間違っていました。ソース列ではなく、合計で行う必要があります。 –

+0

ソース列ではないエイリアス列を使用していますが、同じエラーです。 Amount1は解決できません。 – sks

関連する問題