scala(11)
-
spark_study) AggregateByKey TEST
AggregateByKey https://www.projectpro.io/recipes/explain-aggregatebykey-spark-scala 위의 링크를 통해 개념을 살펴보고 아래처럼 작성해보았다. spark-shell을 사용해서 작성 /usr/local/Cellar/apache-spark/3.1.2/bin/spark-shell // Bazic aggregateByKey example in scala // Creating PairRDD studentRDD with key value pairs, Number partitions is 3 defined in parallelize method. val studentRDD = sc.parallelize(Array( ("Joseph", "Maths", 8..
2022.04.07 -
Spark - RDD?
RDD(Resilient Distributed Dataset)는 불변이며, 분산 컬렉션 객체이다. 불변성 특성때문에 한번 생성된 RDD는 읽기 전용이다. 즉, 트랜스포메이션(Transformation)은 RDD에서 새로운 RDD로 생성할 수는 있지만, 원본 RDD는 생성된 후에는 결코 수정되지 않는다. 그러므로 RDD는 경쟁조건과 기타 동기화 문제에 영향을 받지 않는다! RDD는 데이터에 대한 참조만 포함하기 때문에(실제 데이터는 클러스터의 노드에 있는 파티션에 포함) RDD의 분산 특성이 동작할 수 있다. RDD는 실제로 클러스터에서 파티션으로 나워진 데이터셋이고, 파티션 데이터는 HDFS, HBase, Cassnadra, AWS S3에서 가져온 것일 수 있다. RDD는 다음과 같은 5가지 주요 속성을..
2022.03.03 -
[Spark-Study] Day-9 스칼라?
빅데이터 분석을 위한 스칼라와 스파크 책을 구입! 107p 까지 읽음. 간략하게 요약해보면 1장 스칼라는 함수형 프로그래밍과 강력한 정적 타입 시스템을 지원하는 벙용 프로그래밍 언어. 정적타입? 프로그래밍언어에서 컴파일 시간에 변수의 타입을 알게 되면 정적타입 언어라고 함. (ex 자바 같은언어) 반대 개념은 인터프리터 언어(런타임시에 언어를 분석, 파이썬 같은 애들) 객체지향 프로그래밍과 함수형 프로그래밍의 개념을 지원. 여러 IDE를 지원(이클립스, 인텔리제이, VIM 등등) 스칼라는 JVM을 사용하기 때문에 자바가 설치 되어있어야 함. 스칼라는 확장 가능한(Scalable) 언어에서 유래 했다고 함. 스칼라 REPL(레플) 스칼라 shell에 스칼라 코드를 좀 더 쉽고 간결하게 작성할 수 있게 하는..
2021.09.09 -
[Spark-Study] Day-4 스파크 로컬 디버깅
2021.06.14 - [Study/Study group] - [Spark-Study] Day-1 2021.06.24 - [Study/Study group] - [Spark-Study] Day-2 2021.07.01 - [BigDATA/spark] - [Spark-Study] Day-3 spark local debugging 해보기 코드상으로는 아래의 내용이 추가 된다. val conf = new SparkConf().setAppName("MnMCount") conf.setIfMissing("spark.master", "local[*]") val spark = SparkSession .builder .config(conf) .getOrCreate() // val spark = SparkSession //..
2021.08.05 -
HDFS부터 DB까지 팁 아닌 팁~
스칼라 알못 스파크 알못이라..이번에 작업한 내용이 있는데 삽질을 많이 했다...ㅋㅋ 생각나는 것들을 적어보자. HDFS를 가져와 RDD에 저장! sc.textFile을 통해서 HDFS를 가져온다. sc.textFile("hdfs path") 그런데 그냥 가져오면 소용이 없다. 그러므로 map을 통해서 필요한 친구들만 가져온다. 또한 filter를 통해 데이터를 줄여준다.ex) hdfs의 포맷이 Json이라서 Gson을 사용. filter를 통해 데이터를 줄여준다. val rddRaw0 = sc.textFile("hdfs path").map(line => new Gson().fromJson(line, classOf[TestObject])).filter(line=> line.collection.code.c..
2019.01.15 -
java.sql.SQLException: No value specified for parameter 3
해당 에러는 scala + mysql에서 insert + update를 하고자할 때 났다.쿼리 스트링은 아래와 같다.val insertSql = """ |insert into 테이블 (name, age ) |values (?,?) |ON DUPLICATE KEY UPDATE name = ?, age =? """.stripMarginjava.sql.SQLException: No value specified for parameter 3에러는 아래에서 코드가 추가되지 않아서였다.targetList.foreach { t => val name = t._1 val age = t._2 if (age > 20){ insertStmt.setString(1, name) insertStmt.setInt(2, age) ins..
2019.01.09