Spark DF Load Error with MariaDB Connector

연구실에서 이것 저것 크롤링해놓은 것(주로 공공데이터)을 MariaDB에 해놓았다. 이제 MariaDB로부터 데이터를 불러와서 분석하려고  Zeppelin에서 MariaDB connector jar를 로드한 뒤에 DataFrame으로 테이블을 가져오려니 int column를 가져올 때 너무 큰 값을 가져오고 있다면서 connection이 죽어버리는 문제가 발생했다. (value i is not in Integer range) 구글링으로 MariaDB Jira에서 관련 이슈를 찾아냈고, 해결됐다고 생각하면 다시 부활하는 이상한 버그인 것 같았다. […]

Spark Standalone Cluster with Docker Swarm

이번에 연구실에서 Apache Spark Cluster를 구축할 일이 있어서 구축 방법을 문서화했다. 이 포스트에서는 그 문서에 살점을 조금 더 붙여서 올려본다. 아울러 데이터가 최대한 내부망에서 처리되는 것을 원하시는 교수님 + 클라우드로 연구비를 사용하기 힘듦 등의 이유로 AWS를 사용할 수 없는 환경이라 직접 설치 / 설정했음을 밝혀둔다. Why Standalone? YARN, Mesos, Kubernetes와 같은 방법 대신에 왜 Docker […]

Ubuntu 18.04 Java InvalidAlgorithmParameterException

Android를 빌드하다가 만난 에러. Java에서 https를 통해 파일을 다운받으려는 경우, https로 통신을 하는 경우에 발생한다. 단순히 이 에러로만 검색해서 나오는 자료들로는 이 문제를 해결할 수 없다. 위 gist를 그대로 실행하면 문제를 해결할 수 있다. (stackoverflow link) 추가) building your project, you need to accept the license agreements and complete the installation of the missing components […]

Convert Scala Map to JSON with lift-json

Tested Env: Scala 2.11, lift-json_2.11-2.6.3 Ref: https://github.com/lift/lift/blob/master/framework/lift-base/lift-json/src/main/scala/net/liftweb/json/JsonAST.scala#L327 1. Normal Scala Map m ‘s type: Map[String, Any] 2. Use lift-json’s implicit Cast Map[String, Any] to Map[String, JValue] explicitly. 3. Convert Map[String, JValue] to JObject 4. Generate String from JObject 5. But! It cannot convert List that contains Map (List[Map]), since lift-json doesn’t have implicit function for converting Map to JValue. I […]

Convert Spark DataFrame to Map in Scala

테이블에서 각 나이별 Count를 구하는 상황이었다. val ageGroup = finalDf.groupBy(“나이”).count() 과 같이 각 나이가 몇 번 출현하는지 세는 것은 크게 문제가 없었지만, 사람이 어려봤자 0살, 늙어봤자 200살이니 굳이 이것을 데이터프레임으로 들고있기 보다는 Scala built-in Map으로 변환하고 싶었다. 하지만 ageGroup: org.apache.spark.sql.DataFrame = [나이: int, count: bigint]와 같이, 나이는 int, count는 bigint 타입으로 출력되어, 이것을 Seq로 만든뒤 List로 만드니 […]