본문 바로가기

Total220

REST Api 로 Zeppelin Note 실행하기 글 작성 시점 기준 0.10.1 버전이 최신 버전으로 해당 버전 기준으로 작성한다. Zeppelin 은 REST API 를 제공하고 있다. (docs) Note 목록 조회, 생성, 삭제, 실행 등 기본적인 기능은 모두 제공하고 있다. 기본적으로 HTTP 호출을 할 수 있다면 어렵지 않게 접근할 수 있다. 만약 Zeppelin 에 인증이 붙어있다면 어떻게 해야 할까? login 처리가 필요하며 아래와 같은 헤더 (쿠키) 정보가 필요하다 Set-Cookie: ZEPPELINJSESSIONID={SessionId 값} 다양한 방식으로 구현할 수 있지만, 아래 샘플은 curl 을 활용한 방식으로 작성해 봤다. STATUS_CHECK_COUNT=20 SLEEP_TIME=5 COOKIE_FILE=cookies.tx.. 2023. 10. 27.
Spark Dataframe 에서 특정 컬럼 타입 변경 Spark 에서 Schema 를 지정해 Dataframe 을 생성한다면 좋겠지만 csv 등 schemaless 하게 Dataframe 을 생성한 경우 타입을 변경해야 할 일이 있을 수 있다. 기본적으로 아래와 같이 캐스팅 하면 된다. df.withColumn(columnName, col(columnName).cast("type"))​ 만약 변경해야 하는 컬럼이 여러 개라면? import org.apache.spark.sql.DataFrame import org.apache.spark.sql.functions._ val DEFAULT_COLUMN_TYPES_MAP = Map( "SEQ" -> "decimal(9,0)", "AMT" -> "decimal(9,0)" ) object DataFrameExtens.. 2023. 10. 27.
[코딩인터뷰] 면접관의 입장 중간 이상의 어려운 문제를 출제하라 여러 가지 난관을 거쳐야 하는 문제를 찾으라 알기 어려운 지식이 아닌 풀기 어려운 문제를 출제하라 겁을 주는 문제는 피하라 수학 또는 확률, Raw Level 지식(메모리할당), 시스템 디자인 또는 확장성 P33. 문제참고 지원자를 긍정적으로 대하라 행동 질문을 철저히 하라 지원자에게 조언하라 지원자가 과거에 무엇을 했는지 이해하기 어렵다고 해서 중요한 일을 하지 않았다고 판단하지 마라 만약 지원자가 했던 일이 대단치 않다고 생각되면 더 깊게 캐물어라 그들이 생각할 시간을 원한다면 생각할 시간을 주라 “뭘 어떻게 해야 할지 모르겠어”와 “생각 중이야”를 구별할 수 있어야 한다 방식을 정하라 Sanity Check: 기본적인 질문, 최소한의 레벨 체크 Quality: 좀.. 2019. 12. 20.
Java에서 문자열에 포함된 HTML 태그들 제거하기 개요 개발을 진행하다 보면 문자열에서 HTML 관련 태그를 모두 삭제하고자 하는 경우가 있다. HTML 내용에는 예외 상황이 많기 때문에 정규식으로 완벽히 지우기는 어렵긴 하다. 그래서 공통 코드로 하나 만들어 보았다. 개발 public class HtmlUtils { private enum HtmlTagPatterns { SCRIPTS("]*>.*?", Pattern.DOTALL), STYLE("", Pattern.DOTALL), TAGS("]+|[a-zA-Z!-:]+)>"), N_TAGS(" 2018. 2. 8.