[Troubleshooting] Spark2 UDF NPE Cases
[Troubleshooting] Spark2 UDF NPE Cases
2018.11.25spark-udf-oom Spark 2 UDF에서의 NullPointerException Cases Hive QL보다 Spark가 가지는 장점 중 하나는 자유도 높게 원하는 동작을 구현할 수 있다는 점이다. 그것이 가능한 하나의 이유는 UDF (User Defined Function)일 것이고, 일반적인 개발자라면 쉽게 작은 함수 블록을 선언 및 구현 후 Spark DataFrame에 적용할 수 있다. 다만, 이런 UDF의 경우 디버깅이 쉽지 않고 에러 메시지를 만나면 워낙 많은 케이스가 존재해서 내가 겪었던 몇 가지 사례를 정리해서 올려본다. UDF가 참조하는 Column이 null 값을 가지고 있는 경우 가장 빨리 의심해봐야 하는 부분이다. 입력으로 들어가는 값이 null이라면 연산 과정에서 OOM이..
Apache Spark Linear Regression Example
Apache Spark Linear Regression Example
2018.02.05Linear Regression Example using Apache Spark Example code import org.apache.spark.ml.feature.VectorAssembler import org.apache.spark.ml.regression.LinearRegression import org.apache.spark.sql.SparkSession object LinearRegressionExample { def main(args: Array[String]): Unit = { val spark = SparkSession .builder() .appName("Linear Regression Example") .getOrCreate() val loadOptions = Map("sep" -> ..
C++11/14 관련 Problem solving tip
C++11/14 관련 Problem solving tip
2016.12.03https://www.acmicpc.net/blog/view/46 나중에 읽어봐야지
Keras에서 GPU 메모리 할당량 조절
Keras에서 GPU 메모리 할당량 조절
2016.11.18TensorFlow를 Backend로 사용하는 GPU Enabled Keras는 기본값이 모든 GPU Memory를 할당하는 것이다.혼자 쓰는 것이면 문제가 안 되겠지만, 연구실 구성원들과 같이 쓰는 서버이기 때문에 메모리 할당량을 조절하려고 검색을 하니 다음 두 링크를 찾을 수 있었다.https://groups.google.com/forum/#!topic/keras-users/MFUEY9P1sc8https://github.com/fchollet/keras/issues/1538
Keras로 Multi Layer Perceptron 구현하기
Keras로 Multi Layer Perceptron 구현하기
2016.05.10요새 가장 Hot한 Deep Learning 라이브러리는 아무래도 Tensorflow이고 또 많은 연구자들이 사용하고 있다. Keras는 Tensorflow의 Wrapper 라이브러리로 일관성 있는 인터페이스와 Tensorflow에는 미구현 상태인 많은 Deep Learning 관련 도구들이 구현되어있다(BatchNormalization, Xavier Initialization 등...) 이번 포스트에서는 유명한 MNIST 예제를 Multi Layer Perceptrone을 설계해서 성능을 측정해보겠습니다. ipython 파일의 포맷은 여기서 보실 수 있습니다. 해당 예제는 김성훈 교수님의 강의에서 Tensorflow로 구현된 것을 Keras로 구현해본 것입니다. 모듈 import 부분 MNIST 데이터..
Dim Reduction & Feature Selection
Dim Reduction & Feature Selection
2016.05.09이 게시물은 Geunho Lee님에 의해 번역된 게시물입니다. 번역된 게시물은 Geunho Lee님의 블로그에서도 확인하실 수 있으며, 여러분들도 번역 및 게시물 소장에 참여하실 수 있습니다. [Eng. ver.] 왜 feature가 필요할까? 머신러닝은 입력 데이터를 출력 데이터로 대응시켜주는 블랙박스라고 대략 설명할 수 있습니다. 이 매직박스는 입력 데이터의 함수인데 선형 또는 비선형의 형태를 가질 수 있는데, 우리는 훈련 데이터를 사용해서 이 함수를 학습하지만, 항상 잘 학습되지는 않습니다.예를 들어, 우리가 경기장의 관중 수를 입력으로 해서 해당 야구 경기의 결과를 알고 싶다고 합시다. 경기장의 관중 수만으로 경기의 결과를 정확하게 예측하는 것이 가능할까요? 아마도 관중 수 정보만으로는 경기 결과..
pip show / pip로 설치한 package 정보 확인
pip show / pip로 설치한 package 정보 확인
2016.05.06연구실 서버에 설치된 TensorFlow Version을 확인하려고 방법을 검색해보니 pip show를 이용해서 볼 수 있었다. Reference Guide의 내용 번역 및 예제를 추가해서 정리해둔다.연구실의 TensorFlow Version은 확인 결과 0.7.1이었다. 최신 Version은 0.8사용법pip show [options] ...설명한 개 또는 그 이상 설치된 패키지들의 정보를 보여준다.옵션-f, --files각 패키지에 대해 설치된 파일들의 전체 리스트를 보여준다.예제들한 개 패키지에 대한 정보 확인$ pip show sphinx --- Metadata-Version: 2.0 Name: Sphinx Version: 1.3.1 Summary: Python documentation gener..
Ubuntu man pages
Ubuntu man pages
2016.04.04문제 해결을 위해서 Manual을 봐야하는 것은 기본.Man Page를 항상 가까이하자.http://manpages.ubuntu.com/
ERROR: configuration failed for package 'RCurl'
ERROR: configuration failed for package 'RCurl'
2015.12.28TCGA Assembler의 의존 Package로 RCurl이 필요한 데 ERROR: configuration failed for package ‘RCurl’ 메시지가 발생하였다. Google에 검색해보니 OS별로 여러 가지 답변이 있었지만 결국에 나중에 답을 알고 보니 틀린 답도 꽤 있어서 블로그에 작성한다.해결책은 RCurl FAQ 에 있었다.FAQ 페이지에서 제시하는 원인은 curl-config is not found in your path curl-config and related development libraries (libcurl) are not installed 이며locate libcurl또는 locate curl-config로 libcurl이 설치되어있는 지 확인 후 설치되어있지 않다면..
1076: 저항
1076: 저항
2015.11.05문제: https://www.acmicpc.net/problem/1076 문제에 주어진 조건을 그대로 구현하면 된다. 다만 예외처리가 필요한데 최종값은 32bit int 범위를 넘어갈 수 있는 것만 조심하면 된다.
Python urllib.request / json 예제
Python urllib.request / json 예제
2015.10.29pubchem의 json 페이지를 urllib.request로 가져와서json Parsing 하는 예제
Find Maximum Bipartite Subgraph(Biclique) C++
Find Maximum Bipartite Subgraph(Biclique) C++
2015.06.08http://genome.cs.iastate.edu/supertree/download/biclique/README.html직접 구현하고 있었는데 버그가 많았고처음에 Maximum Bipartite Subgraph로 검색하니 정보가 거의 없었는데Biclique로 검색해서 찾은 라이브러리테스트 사례들 돌려보니 잘 되는 것 같다.