decimal -> int 변환했을 때 음수 나오는 이유
·
Data Engineering/Spark
문제 상황ORACLE에 있는 테이블을 spark dataframe로 변환했다. ORACLE의 NUMBER 형 데이터 타입이 SPARK 에서는 DECIMAL 데이터 타입으로 바뀌었는데, 소수점이 생겨서 보기 불편하였다. 데이터를 식별하는 PK 값에 소수점이 잔뜩 붙어 버리니 데이터가 예쁘지 않았다. ex) ORACLE: 202401010000SPARK DATAFRAME: 202401010000.0000000000 소수점이 필요한 데이터가 아니어서 해결 방법을 찾아 보았다. 문제 발생 원인decimal 데이터 타입으로 변한 이유는, 스파크 데이터프레임으로 변환할 때 따로 스키마 설정을 안 해 주었기 때문이다. 스키마 지정을 하지 않으면 스파크는 숫자형 데이터를 임의로 decimal 데이터 타입으로 바꾸어 소..
파이썬 문자열 찾기 in()과 find()의 차이
·
Python
특정 문자열이 포함되어 있는 걸 확인해야 해서 찾아보았는데, in()과 find()를 많이 사용하는 것 같았다. 그러면 내가 사용하기에 적합한 함수는 무엇일까?원하는 정보SQL 문에서 'where' 이 있냐 없냐 만을 확인하면 된다. where의 위치는 확인할 필요가 없다. 그리고 속도가 빠르면 좋다.예제query = "SELECT * FROM TABLE_NAME WHERE DATE='20240101'"#findprint(query.find("WHERE"))#inprint("WHERE" in query)위와 같은 SQL 문에서 WHERE을 찾아보고, 어떤 값을 반환하나 확인해 보았다. find()를 사용했을 때출력 결과는 25이다. find() 를 사용할 경우 WHERE 의 첫 글자인 W가 있는 위치 인..
ImportError: Unable to import required dependencies: numpy
·
Python
에러 발생 상황local pc에서 인텔리제이로 개발 중 pandas import 한 파일 컴파일 할 때 이 오류가 났다 에러 해결 방법window cmd 들어가서 numpy랑 pandas 제거 후 numpy-pandas 순으로 재설치했다numpy version: 1.25.2pandas version: 2.0.3 개선할 점파일 다운로드 할 때 지금 쓰고 있는 파이썬 버전과 동일한지 확인하기윈도우 64 비트짜리로 다운로드 하기 PC 환경도 다시 확인 후 다운로드
[Python] 리스트 컴프리헨션 list comprehension
·
Python
기존 배열아래는 어떤 리스트에 3을 곱한 뒤 새로운 리스트를 만드는 코드이다.a=[1,2,3,4]result=[]for num in a: result.append(num*3) 리스트 컴프리헨션 적용 배열리스트 컴프리헨션을 사용하면 아래와 같이 코드 길이를 한 줄로 줄일 수 있다.a=[1,2,3,4]result=[num*3 for num in a]print(result) 조건에 따른 리스트 컴프리헨션if로 필터링을 걸 수도 있다.result=[num*3 for num in a if num%2==0] for 문 여러개 사용하기for문을 두 개 사용하여 배열을 생성할 수도 있다. 하지만 두 개 초과하여 사용하지 말자.#for문 여러개 사용하는 경우result =[x*y for x in range(2,10)f..
[ORACLE] ORA-01861: literal does not match format string 오라클 에러 해결 방법
·
Study/SQL
ORA-01861: literal does not match format string 에러 발생 원인과 해결 방법DATE 타입인 컬럼과 String 문자열을 비교해서 발생한 오류이다. 문자열을 DATE 타입으로 바꾸어 해결했다. 기존 쿼리에서의 WHERE 절SELECT * FROM TABLE_NAME WHERE DATE_COL='20190101'; 변경한 WHERE 절SELECT * FROM TABLE_NAME WHERE DATE_COL=TO_DATE('20190101','YYYYMMDD');
[SPARK/Python] 파이썬에서 스파크로 함수 전달하는 방법
·
Data Engineering/Spark
1. 파이썬에서 스파크로 함수 전달하는 예제 (람다식, 실제 함수 전달)#람다식 예제word = rdd.filter(lambda s: "error" in s)#실제 함수를 전달하는 방법def containError(s): return "error" in s word=rdd.filter(containsError) 2.필드 참조가 포함된 함수 전달지양해야 하는 코드class SearchFuntions(object): def __init__(self, query): self.query = query def isMatch(self, s): return self.query in s def getMatchesFuctionsReference(sel..