数据介绍
通过Spark Dataframe API和Sql两种语句处理豆瓣电影数据集,该数据包含五个表格:movies.csv、person.csv、users.csv、comments.csv、ratings.csv。对每个表格进行单独简单的清理,最后写入mysql数据库中
总的数据处理步骤有:删除多余的列,更改列的数据类型,存入mysql数据库
API语法
前期设置
val sparkConf = new SparkConf().set("spark.testing.memory", "2147480000").set("spark.sql.shuffle.partitions","200")
val spark: SparkSession = SparkSession.builder()
.config(sparkConf)
.appName("Spark ETL1.0")
.master("local").getOrCreate()
// 数据库参数
val url = "jdbc:mysql://localhost:3306/douban"
val prop = new java.util.Properties
prop.setProperty("user", "root")
prop.setProperty("password", "123456")
写一个读取csv文件的函数
// 读取csv文件
def readcsv(file_path:String,file_name:String,encoding:String="utf-8"): DataFrame = {
val dataFrame: DataFrame = spark.read
.format("csv")
.option("header", "true")
.option("encoding", encoding)
.load(file_path)
dataFrame
}
处理movies元数据
movies有两个特殊的列:ACRTOR _IDS 和 DIRECTOR_IDS。元数据内容形式是这种: |王博:123456|张杰:452759|周杰伦:|