반응형
spark 예제 돌려보기
sbt로 build를 하기 위해 필요한 것은 아래와 같다.
1. 소스
2. build.sbt
sbt clean 한뒤에 sbt package를 해보자!
spark-submit 해보기!
/usr/local/Cellar/apache-spark/3.1.1/bin/spark-submit --class MnMcount target/scala-2.12/main-scala-chapter2_2.12-1.0.jar mnm_dataset.csv
인텔리J에 셋팅 해보기!
인텔리J에서 프로젝트를 Open 해보자!
아래와 같이 인텔리J에 프로젝트를 잘 가져왔다.
프로젝트 구조는 위와 같다.
MnMcount 소스
// scalastyle:off println
import org.apache.spark.sql.SparkSession
import org.apache.spark.sql.functions._
/**
* Usage: MnMcount <mnm_file_dataset>
*/
object MnMcount {
def main(args: Array[String]) {
val spark = SparkSession
.builder
.appName("MnMCount")
.getOrCreate()
if (args.length < 1) {
print("Usage: MnMcount <mnm_file_dataset>")
sys.exit(1)
}
// get the M&M data set file name
val mnmFile = args(0)
// read the file into a Spark DataFrame
val mnmDF = spark.read.format("csv")
.option("header", "true")
.option("inferSchema", "true")
.load(mnmFile)
// display DataFrame
mnmDF.show(5, false)
// aggregate count of all colors and groupBy state and color
// orderBy descending order
val countMnMDF = mnmDF.select("State", "Color", "Count")
.groupBy("State", "Color")
.sum("Count")
.orderBy(desc("sum(Count)"))
// show all the resulting aggregation for all the dates and colors
countMnMDF.show(60)
println(s"Total Rows = ${countMnMDF.count()}")
println()
// find the aggregate count for California by filtering
val caCountMnNDF = mnmDF.select("*")
.where(col("State") === "CA")
.groupBy("State", "Color")
.sum("Count")
.orderBy(desc("sum(Count)"))
// show the resulting aggregation for California
caCountMnNDF.show(10)
}
}
// scalastyle:on println
mnm_dataset.csv는 아래 파일 참고!
끝~
인텔리J 업그레이드 -> 플러그인 셋팅 -> 런 스파크!
2021.07.29 - [BigDATA/spark] - Upgrade IntelliJ IDEA for Big Data Tool Plug-In & running spark!
반응형
'BigDATA > spark' 카테고리의 다른 글
[Spark-Study] Day-4 스파크 로컬 디버깅 (2) | 2021.08.05 |
---|---|
Upgrade IntelliJ IDEA for Big Data Tool Plug-In & running spark! (0) | 2021.07.29 |
[error] SERVER ERROR: Service Unavailable url=블라블라 (0) | 2021.06.14 |
HDFS부터 DB까지 팁 아닌 팁~ (0) | 2019.01.15 |
sbt lib 연동 안되는 현상 (0) | 2019.01.04 |