2
나는 스파크 (스칼라)를 배우고 있으며 파생 된 열이있는 데이터 프레임을 만들고 있습니다. 나는 최선의 방법을 찾아 내려고 노력하고있다.스파크 데이터 프레임 계산 된 열
내 사용 사례가 값에 대한 또 다른 열을 찾아이 개 추출 된 컬럼 - 예를 들어 -
가if (col22 = "USD") then col1 = "US" elseif (col22 = "CDN" the col1 = "CA" else null)
다른 사용 사례가
if(col23 = "us" && col100 = "abc") then col2 = "10" else if (col23 = "us" && col100 = "bacd" && col99 is null then col2 = 11 else null)
질문입니다 - 나는에 대한 UDF 함수를 작성했습니다 위에서 언급 한 계산. 이 일을하는 더 좋은 방법이 있는지 궁금합니다. udf 함수를 쓰는 것이 가장 좋습니다. 나는이 코드를 내 코드에서 한 번만 사용할 것이다.
내 스칼라 코드 -
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