read_csv
등)CPU는 일꾼입니다. 보통 컴퓨터는 여러 일꾼을 가지고 있습니다.
우측은 정말 직관적인 설명입니다.
모두 이해할 필요는 없으며, 가장 중요한 것은 코어의 수라고 봐도 됩니다.
*같은 코어 수라도, 고성능의 CPU는 수배 이상 빠를 수 있습니다.
하나의 작업을 위해 여러 코어를 사용하는 것을
병렬 처리라고 합니다.
- 스파크 또한 여러 대의 PC를, 그리고 각 PC의 여러 코어를 모두 사용합니다.
오버플로Overflow
부동소수점 오차
부동소수점은 그 원리상 필연적으로 오차를 동반합니다
이러한 오차는 더 많은 메모리(16 → 32)를 사용할수록 줄어들지만
이론적으로는 무한히 많은 메모리를 사용해야만 이 오차를 정확히 없앨 수 있습니다
딥러닝의 경우 메모리 사용을 줄이기 위해,
의도적으로 오차를 감수해서라도 메모리를 줄이기도 합니다(float 16등)
문자열은 문제가 더 복잡합니다.
일반적으로 우리에게 친숙한 대부분의 소프트웨어는 [유니코드unicode](https://ko.wikipedia.org/wiki/%EC%9C%A0%EB%8B%88%EC%BD%94%EB%93%9C_0000~0FFF)
를 이용하여 문자열을 인코딩합니다
*이러한 원리를 모두 지금 이해할 필요는 없습니다
중요한 것은 메모리를 굉장히 많이 차지한다는 것을 기억하면 된다는 것입니다.
이에 대한 대안으로, 범주Category형 자료를 사용할 수 있습니다.
본래 문자열로 이루어졌던 Species
칼럼을
범주형으로 변환하였습니다(SpeciesCate
)
해당 범주 자료가 내부에서는 숫자로 사용되고 있음을 보았습니다 (SpeciesCateCode
)
이를 통해 90%이상의 메모리를 절약할 수 있습니다
시간과 관련된 정보입니다.
일반적으로 소프트웨어들은 Unix Timestamp를 기준으로 합니다
%y
나 %Y
(4자리)로, 월을 %m
, 일은 %d
로 표현합니다.Time zone