1. spark-shell 执行脚本
spark-shell 中相当于定义了一个Object并提供main(),且代码都是在其中执行,不需额外定义Object。
test.scala
//import org.apache.spark.sql.types._
import org.apache.spark.sql.Row
import org.apache.spark.sql.SparkSession
val spark = SparkSession.builder().getOrCreate()
spark.sparkContext.setLogLevel("WARN")
val rdd = spark.sparkContext.parallelize(Array("1 xiaoMing M 26", "2 XiongDa M 27")).map(_.split(" "))
rdd.take(5)
val rowRDD = rdd.map(p => Row(p(0).toInt, p(1).trim, p(2).trim, p(3).toInt))
rowRDD.take(5).foreach(println)
调用
spark-shell -i <test.scala

2. 流程概述
针对不同模块的数据分别写到parquet文件的不同group下,然后对不同group进行union整合,产出新的parquet文件,最终落地到hive。
2.1 整体
run.scala
import java.util.Date
import java.time.LocalDate
import java.time.format.DateTimeFormatter
import org.apache.spark.sql.SparkSession
import org.apache.spark.sq

本文介绍了在Spark Shell中执行Scala脚本处理数据的过程,包括创建SparkSession,读取与过滤Parquet文件,执行表连接,对DataFrame进行聚合操作,以及将结果写回Parquet文件和Hive。此外,还展示了如何合并不同group生成pivot表,并对数据进行统计分析。

最低0.47元/天 解锁文章
574

被折叠的 条评论
为什么被折叠?



