Spark Application 개발은 scala 사용을 원칙으로 한다.
스칼라 코딩 스타일은 Scala 코딩 스타일 가이드를 참조한다.
camelCase
를 사용한다.
snake_case
를 사용한다.
DataFrame/Dataset
을 case class
에 담아 테이블로 저장하는 경우
case class
의 필드명은 snake_case
를 사용한다.Column.name
도 SQL코드를 쉽게 작성할 수 있도록 snake_case
로 작성한다.DataFrame/Dataset/RDD
를 담는 변수명에는 DF/DS/RDD
postfix를 붙인다.
val userDF: DataFrame = ...
val bookDS: Dataset[Book] = ...
val bestsellerRDD: RDD[Bestseller] = ...
val defaultCategory = "comic"
val categories = List("general", "romance", "fantasy", "comic", "bl")
// Don't do this
val categoryList = List("general", "romance", "fantasy", "comic", "bl")
ex) BuildBestseller, BuildRecommend
outputDF.write.format(“parquet”).mode(SaveMode.Overwrite).saveAsTable(output)
outputDF.write .format(“parquet”) .mode(SaveMode.Overwrite) .saveAsTable(output)
outputDF.write.format(“parquet”) .mode(SaveMode.Overwrite) .saveAsTable(output)
// don’t do these outputDF.write.format(“parquet”).mode(SaveMode.Overwrite) .saveAsTable(output)
outputDF.write .format(“parquet”).mode(SaveMode.Overwrite) .saveAsTable(output)
## Spark SQL
- 쿼리문이 간결하고 짧은 경우 singleline string 사용
```scala
val teenagerNameDS = spark.sql("SELECT name FROM people WHERE age BETWEEN 13 AND 19").as[Name]
1 space
사용
val teenagerNameDS = spark
.sql(
s"""
|SELECT
| name // indent 1 space
|FROM people
|WHERE age BETWEEN 13 AND 19
|""".stringMargin
).as[Name]