[BaekJoon Online Judge] 7576 – 토마토 문제 https://www.acmicpc.net/problem/7576 소스코드 bfs를 이용한 최단거리 문제로 해결할 수 있다. 익은 토마토 옆이면 그 다음 사이클에 익은 상태로 바뀌기 때문에, 초기 상태에 익은 토마토 모두를 q에 넣은 뒤 bfs 탐색을 시작한다. 탐색이 끝나면 visit 배열에서 가장 높은 숫자가 상자 내의 모든 토마토가 익는 최소 날짜가 된다. from collections import […]
[BaekJoon Online Judge] 12100 – 2048 (Easy)
[BaekJoon Online Judge] 12100 – 2048 (Easy) 문제 https://www.acmicpc.net/problem/12100 소스코드 문제에서 최대 다섯 번의 방향 전환이 가능하다고 제약을 걸었기 때문에, 5중 루프를 돌려서 가능한 모든 경우의 수를 만들었다. 앞서 만든 경우에 수에 대해, 문제에서 설명한 2048 게임룰(방향 전환에 따라 블록이 합쳐지는 조건)을 노가다로 작성해서 문제를 해결할 수 있었다. from copy import deepcopy def game(direction): global […]
[BaekJoon Online Judge] 13458 – 시험 감독
[BaekJoon Online Judge] 13458 – 시험 감독 문제 https://www.acmicpc.net/problem/13458 소스코드 총 감독관은 오직 1명만 있어야 하므로, 총 감독관 한 명이 감당할 수 있는 인원을 초과한 인원에 대해서 필요한 부감독관 수를 산정하면 되는데 if – else 만으로 구현하니 시간초과가 나서, elif 조건을 하나 더 추가해서, d[] 배열에 메모이제이션 한 결과를 리턴할 수 있도록 했다. N = […]
[BI] Brightics Studio 설치 (Linux)
Brightics Studio Installation on Linux Brightics Studio를 로컬 데스크탑이 아닌 원격 Linux 머신에 설치한다. localhost(127.0.0.1)가 아닌 외부에서 접근할 수 있는 IP 주소로 바인딩해야 한다. 사전 준비 의존 패키지 Python,Java,Node.Js 에 의존성이 있다. ProZone VM에 설치하는거니 대충 패키지 매니저로 설치한다. Python sudo yum install -y https://centos7.iuscommunity.org/ius-release.rpm sudo yum install -y python36u python36u-libs python36u-devel python36u-pip Node.js sudo […]
[Hadoop] Oozie 설치
Oozie 설치 아파치 우지(Apache Oozie)는 하둡의 잡(job)을 관리하기 위한 서버 기반의 워크플로 스케줄링 시스템이다. 사전 준비 다음과 같은 사전 준비 작업이 필요하다. Java java -version java version “1.8.0_181” Java(TM) SE Runtime Environment (build 1.8.0_181-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode) Maven mvn -version Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-25T03:41:47+09:00) Maven home: /app/maven Java […]
[Git] Github에서 git 시작하기
Github에서 git 시작하기 거의 모든 데이터는 nextcloud에 백업을 해두는데, 운영하고 있는 시스템 설정 파일들은 github에서 관리하는게 버전관리도 되고 좋은 것 같다. 소스코드는 아닌지만 하도 이랬다저랬다 설정을 많이 바꾸는 탓에. mysql 덤프 파일도 용량이 적어서 github을 이용해서 백업하면 좋은듯. Create a New Repository github에 계정을 만들고 로그인을 하면, 왼쪽 탭 [New] 버튼을 클릭해 새로운 repository를 생성할 […]
[Hadoop] Hue 설치
Hue 설치 Hue(Hadoop User Experience)를 이용하면 다양한 Apache Hadoop 에코시스템을 Web Interface로 접근할 수 있다. 의존성 패키지 yum -y install python2-devel sqlite-devel libxml2-devel libxslt-devel libffi-devel openssl-devel openldap-devel gmp-devel execvp-devel gcc gcc-c++ MySQL django의 Repository DB로 mysql을 사용한다. hue를 컴파일할 때 mysqld_config 명령도 필요하므로 먼저 설치해놔야 한다. 참고 : mysql 설치 미리 설치된 mysql 데이터베이스에 아래와 […]
[Hadoop] Hive 설치
Hive 설치 Hive를 이용하면 HDFS에 저장된 데이터를 HiveQL이라는 SQL-Like 언어로 쿼리할 수 있다. 사전 준비 JDK Hadoop Hadoop 파일시스템에 데이터파일을 저장하기 때문에 파일 저장소로서 하둡이 필수적이고, Hive가 설치되는 서버에 Hadoop Client가 설치돼 있어야 한다. (Hadoop 서버의 디렉토리를 통채로 복사해놓으면 된다.) 참고 : Hadoop 설치 MySQL metastore db로 mysql을 이용하기 위해 사전에 설치가 돼 있어야 한다. […]
[PySpark] dataframe을 python 자료형(dict)으로 변형하기
[PySpark] dataframe을 python 자료형(dict)으로 변형하기 spark driver 에서 데이터를 바로 사용하는 경우, dataframe은 다루기가 어려운 것 같다. dataframe의 collect()와 asDict()를 이용하면 Python 자료형으로 변환할 수 있다. dataframe 생성 pyspark에서 elasticsearch index를 조회해 dataframe을 생성한다. >>> from pyspark.sql import SQLContext >>> sqlContext = SQLContext(sc) >>> df = sqlContext.read.format(“org.elasticsearch.spark.sql”).option(“es.nodes”,”192.168.179.141:9200″).option(“es.nodes.discovery”, “true”).load(“${INDEX}/${TYPE}”) >>> df.registerTempTable(“tab”) >>> df = sqlContext.sql(“SELECT distinct […]
[PySpark] Elasticsearch Index 에서 DataFrame 생성하기
[PySpark] Elasticsearch Index 에서 DataFrame 생성하기 elasticsearch-hadoop connector 를 이용해서 spark dataframe을 생성한다. Spark 설치 spark 다운로드 및 환경설정 필요한 요소만 설치하고자 하는 경우 소스코드를 내려받아서 maven을 이용해 빌드해도 되지만 pre-compiled 바이너리를 이용한다. wget http://mirror.navercorp.com/apache/spark/spark-2.3.2/spark-2.3.2-bin-hadoop2.7.tgz tar -xvzf spark-2.3.2-bin-hadoop2.7.tgz -C /app/spark/. mv /app/spark/spark-2.3.2-bin-hadoop2.7 /app/spark/2.3.2 find /app/spark/2.3.2 -mindepth 1 -maxdepth 1 -type d | xargs -I {} […]