【Spark】sparksql 에서 사용자 정의 함 수 를 사용 합 니 다.

1316 단어 Spark
코드 에 서 는 대상 지향 과 함수 지향 두 가지 쓰기 로 두 가지 함 수 를 정의 하 였 습 니 다:low 2Up:소문 자 대문자 up2 Low:대문자 소문 자 소문 자
import org.apache.spark.sql.types.StringType
import org.apache.spark.sql.{DataFrame, SparkSession}

object SparkSQLFunction {
  def main(args: Array[String]): Unit = {
    //1.   SparkSession  
    val sparkSession: SparkSession = SparkSession
      .builder()
      .appName("SparkSQLFunction")
      .master("local[2]")
      .getOrCreate()
    //2.        DataFrame
    val dataFrame: DataFrame = sparkSession.read.text("E:\\BigData\\kkb\\    \\spark_day05\\    \\test_udf_data.txt")
    //3.      
    dataFrame.createTempView("t_udf")
    //4.   udf register  ,      udf   ; register     :   udf  ,   ,      (      )
    sparkSession.udf.register("low2Up",new UDF1[String, String] {
      override def call(t1: String): String = {t1.toUpperCase}
    },StringType)
    //5.            udf   (      )
    sparkSession.udf.register("up2Low",(x:String)=>x.toLowerCase)
    //6.   sparksql  udf  
    sparkSession.sql("select value from t_udf").show()
    sparkSession.sql("select low2Up(value) from t_udf").show()
    sparkSession.sql("select up2Low(value) from t_udf").show()
    //7.     
    sparkSession.stop()
  }
}

좋은 웹페이지 즐겨찾기