UDF用户自定义函数

- udf 用户自定义函数

  • 注意细节 代码复制粘贴即可使用
object UDF_Demo_Scala {
  def main(args: Array[String]): Unit = {
    val conf: SparkConf = new SparkConf()
      conf.setMaster("local")
      conf.setAppName("test")
    //不添加此列 会报错 报一个重复创建 SparkContext对象
      conf.set("spark.driver.allowMultipleContexts","true");
    val sc = new SparkContext(conf)
    var spark: SparkSession = SparkSession.builder().config(conf).getOrCreate()
    /*这里的 最后分区个数必须设置为一  否则下面执行sql语句的时候
    只会进行区内排序 因为分区的个数决定着并行度 所以多个task同时运行
    所以只能保证同一个task中的数据会进行排序*/
    val makeRdd: RDD[String] = sc.makeRDD(Array("zhang","li","wang","zhao","tian"),1)
    // 4.读取文件数据,先使用map切分数据,再使用map将数据转成Row类型
    val mapRdd: RDD[Row] = makeRdd.map(f => {
      RowFactory.create(f)
    })
    // 5.动态构建DataFrame中的元数据,一般来说这里的字段可以源于字符串,也可以源于外部数据库
    val arr = Array(
      StructField("name", StringType)
    )
    // 6.将list转为DataFrame中的元数据
    val structType: StructType = Dat

猜你喜欢

转载自blog.csdn.net/qq_42890382/article/details/104297853