2
私はspark(scala)を学習しており、派生カラムを持つデータフレームを作成しています。私はベストプラクティスを理解しようとしています。spark dataframe計算カラム
私のユースケースは、値を別の列を探して2つの導出列がある - 私はUDF関数を書かれている - 他のユースケースが
if(col23 = "us" && col100 = "abc") then col2 = "10" else if (col23 = "us" && col100 = "bacd" && col99 is null then col2 = 11 else null)
質問です
if (col22 = "USD") then col1 = "US" elseif (col22 = "CDN" the col1 = "CA" else null)
- 例えば を上記の計算。私はこれを行うより良い方法があるのだろうか? udf関数を書くのがベストプラクティスです。私は自分のコードでこれらの関数を1回だけ使用します。
マイScalaのコード -
def udf1 = udf((col22: String){ (col22) match {
case col22 if (col22 == "USD") => "US"
case col22 if (col22 == "CDN") => "CA"
case _ => null } })
val df1= df.select($"col1", $"col2", udf1($"col22").as("newcol"), udf2($"col23", $"col100").as(newcol2))
がそれ(あなたの例では)インラインコードを使用することがベストプラクティスであるか、我々はUDFを使用する必要がありますか? – user1122
必要な場合を除き、UDFは使用しないでください。他のコードと同様にSQL式を作成できます。 – zero323