explode炸裂函数

package SparkSQL.fun

import org.apache.spark.SparkConf
import org.apache.spark.sql.SparkSession

/**
 * _1  _2
 * zs  60-70-90
 * ls  70-80-90
 * 求zs和ls的总成绩  平均成绩
 * _1  _2
 * zs  60
 * zs  70
 * zs  90
 * ls  70
 * ls  80
 * ls  90
 */
object ExplodeCode {
  def main(args: Array[String]): Unit = {
    val sparkConf = new SparkConf().setAppName("func").setMaster("local[*]")
    val ss = SparkSession.builder().config(sparkConf).getOrCreate()

    val frame = ss.createDataFrame(Array(
      ("zs", "60-70-90"),
      ("ls", "70-80-90")
    ))

    frame.createTempView("score")
    frame.printSchema()

    val frame1 = ss.sql("select score._1, ss.tt from score lateral view explode(split(_2, '-')) ss as tt")
    frame1.show()

    ss.stop()
  }
}
posted @ 2022-09-05 20:49  jsqup  阅读(142)  评论(0编辑  收藏  举报