728x90
반응형
ElasticSearch의 인덱스를 불러와서 Zeppelin에서 사용하려고 했다.
인덱스를 제목-날짜(yyyy.MM.dd) 형식으로 만들어서 날짜를 항상 오늘 날짜로 사용하고 싶었다.
이를 위해서 현재 시간 정보를 불러오는 함수가 필요했는데 다음과 같이 사용했다.
val ts = (current_timestamp()).expr.eval().toString.toLong
val dateValue = new java.sql.Timestamp(ts/1000).toLocalDateTime.format(java.time.format.DateTimeFormatter.ofPattern("yyyy.MM.dd"))
어제 정보도 불러오면 좋을 것 같아 다음과 같이 하여 쉽게 불러올 수 있었다.
val ts = (current_timestamp()).expr.eval().toString.toLong - 86400000L
val dateValue = new java.sql.Timestamp(ts/1000).toLocalDateTime.format(java.time.format.DateTimeFormatter.ofPattern("yyyy.MM.dd"))
특정 데이터를 기준으로 정렬을 하거나 조건으로 조회하려고 했는데 해당 데이터가 문자열이었다.
그래서 정렬을 제대로 하기 위해 형변환이 필요했는데 실수형으로 변환해야 했다.
withColumn과 cast로 쉽게 해당 열의 타입을 변환할 수 있었다.
import org.apache.spark.sql.types.FloatType
...
df.withColumn("etc", df("etc") cast FloatType).createOrReplaceTempView("temp")
참고 문헌
반응형
'Log' 카테고리의 다른 글
[Log] Logstash 메모리 누수? (0) | 2020.12.03 |
---|---|
[Log] Elastic Search 특정 필드 업데이트 (0) | 2020.11.26 |
[Log] Zeppelin 크론 설정하기 (0) | 2020.08.27 |
[Log] ElasticSearch _default_ mapping 문제 해결 (0) | 2020.05.28 |
[Log] HDFS Web UI Permission denied (0) | 2020.04.02 |