이 글에서 읽은 것은 빅 데이터가 구성하는 빅 데이터에 적합한 R 언어5TB
이며, 이러한 유형의 데이터로 작업 할 가능성에 대한 정보를 제공하는 것은 훌륭 R
하지만 정보는 거의 제공하지 않습니다 Python
. Python
이 많은 데이터로도 작업 할 수 있는지 궁금합니다 .
이 글에서 읽은 것은 빅 데이터가 구성하는 빅 데이터에 적합한 R 언어5TB
이며, 이러한 유형의 데이터로 작업 할 가능성에 대한 정보를 제공하는 것은 훌륭 R
하지만 정보는 거의 제공하지 않습니다 Python
. Python
이 많은 데이터로도 작업 할 수 있는지 궁금합니다 .
답변:
명확히하기 위해 OP의 원래 질문 참조가 SO 유형 형식에 가장 적합하지 않은 것 같지만 python
이 경우에는 분명히 대표 할 것 입니다.
데이터 크기에 관계없이 python
제한 요인이되어서는 안된다는 것부터 시작하겠습니다 . 실제로, 큰 데이터 세트를 처리 할 때 몇 가지 주요 문제가 있습니다.
1TB
할 때까지 다른 곳에서 저장소를 찾아야합니다. AWS S3는 가장 일반적인 리소스이며 대량의 데이터를 처리 할 수 python
있는 환상적인 boto
라이브러리를 갖추고 있습니다.빅 데이터를 다룰 때 이해해야 할 것이 몇 가지 있습니다.
볼륨, 속도, 버라이어티 등 유명한 빅 데이터 V를 알고있을 수도 있습니다. 따라서 파이썬은 모든 사람에게 적합하지 않을 수 있습니다. 사용 가능한 모든 데이터 과학 도구와 함께 제공됩니다. 어떤 도구가 어떤 목적에 적합한 지 알아야합니다.
많은 양의 데이터를 처리하는 경우 :
이제 중간 단계에서 R / Python을 사용할 수 있지만 전체 프로세스에서 병목 현상이 발생한다는 것을 알게 될 것입니다.
데이터 속도를 처리하는 경우 :
사람들은 여기서 R / Python을 시도하지만 다시 한 번 원하는 병렬 처리와 모델 복잡성에 달려 있습니다.
모델이 전체 데이터를 먼저 메모리로 가져 오도록 요구하는 경우 중간 데이터가 크면 코드가 손상되므로 모델이 복잡하지 않아야합니다. 그리고 디스크에 쓰기를 원한다면 RAM에 비해 디스크 읽기 / 쓰기가 느리기 때문에 추가 지연이 발생합니다.
빅 데이터 공간에서 파이썬을 확실히 사용할 수 있습니다 (물론 사람들이 R을 사용하려고 시도하기 때문에 파이썬은 아닙니다) 데이터와 비즈니스 요구 사항을 먼저 알고 있습니다. 더 나은 도구를 사용할 수 있으며 항상 다음을 기억하십시오.
도구는 질문에 대한 답변 방법을 결정하지 않아야합니다. 질문에 따라 사용하는 도구가 결정됩니다.
파이썬에는 빅 데이터 작업을위한 매우 유용한 도구가 있습니다.
Numpy의 메모리 매핑 된 배열을 사용하면 마치 디스크에 저장된 파일을 배열 인 것처럼 액세스 할 수 있습니다. 현재 작업중인 어레이의 부분 만 메모리에로드해야합니다. 일반 배열과 거의 동일하게 사용할 수 있습니다.
이 두 라이브러리는 HDF5 파일에 대한 액세스를 제공합니다. 이 파일을 사용하면 데이터의 일부에만 액세스 할 수 있습니다. 또한 데이터에 액세스하는 데 사용되는 기본 라이브러리 덕분에 파이썬 데이터 구조에 데이터를로드하지 않고도 많은 수학 연산 및 기타 데이터 조작을 수행 할 수 있습니다. 5TB보다 훨씬 큰 대규모의 구조화 된 파일이 가능합니다. 또한 원활하고 무손실 압축이 가능합니다.
빅 데이터 세트를 저장하고 필요한 부분 만로드 할 수있는 다양한 유형의 데이터베이스가 있습니다. 많은 데이터베이스를 사용하면 파이썬 데이터 구조에 데이터를 전혀로드하지 않고도 조작 할 수 있습니다.
이를 통해 HDF5 데이터, CSV 파일, 데이터베이스 및 웹 사이트를 포함한 다양한 유형의 데이터에 더 높은 수준으로 액세스 할 수 있습니다. 빅 데이터의 경우 HDF5 파일 액세스에 대한 래퍼를 제공하여 빅 데이터 세트를보다 쉽게 분석 할 수 있습니다.
이것은 여러 프로세서 또는 여러 컴퓨터에 분산 된 방식으로 파이썬 코드를 실행하기위한 도구입니다. 이를 통해 데이터의 일부를 동시에 작업 할 수 있습니다.
메모리에 맞지 않을 정도로 큰 데이터를 처리 할 수있는 멀티 코어 방식으로 많은 일반 numpy 연산을 지원하는 일반 numpy 배열 버전을 제공합니다.
빅 데이터를 위해 특별히 설계된 도구입니다. 기본적으로 위의 라이브러리를 감싸는 래퍼로, 대량의 데이터 (예 : HDF5 또는 데이터베이스)를 저장하는 다양한 방법에 대한 일관된 인터페이스와 데이터를 쉽게 조작, 수학 연산 및 분석 할 수있는 도구 너무 커서 메모리에 맞지 않습니다.
물론. 그 규모의 데이터로 작업 할 때 빅 데이터 프레임 워크를 사용하는 것이 일반적입니다.이 경우 파이썬 또는 사용중인 언어는 인터페이스 일뿐입니다. 예를 들어 Spark의 Python Programming Guide를 참조하십시오 . 어떤 종류의 데이터가 있고 어떤 데이터를 가지고 하시겠습니까?
이러한 양의 데이터를 처리하기 위해 프로그래밍 언어는 주요 관심사가 아니라 프로그래밍 프레임 워크입니다. MapReduce 또는 Spark와 같은 프레임 워크에는 Python을 비롯한 여러 언어에 바인딩되어 있습니다. 이러한 프레임 워크에는 데이터 분석 작업을위한 즉시 사용 가능한 많은 패키지가 있습니다. 그러나 결국 모든 것이 당신의 요구 사항, 즉 당신의 임무는 무엇입니까? 사람들은 데이터 분석 작업에 대해 서로 다른 정의를 가지고 있으며, 일부는 관계형 데이터베이스로 쉽게 해결할 수 있습니다. 이 경우 SQL은 다른 모든 대안보다 훨씬 낫습니다.
Anaconda Python 3.4 및 Pandas를 사용하여 20K의 로그인 자격 증명과 일치하도록 10M 행 데이터베이스를 검색했습니다. 약 1 분 정도 걸립니다. 팬더 내부는 메모리를 많이 사용합니다. 즉, 진정한 빅 데이터에는 문제와 일치하는 처리 아키텍처가 필요합니다. 팬더는이 방정식의 접착제 (논리) 일뿐이며 다른 도구 도이 작업을 수행 할 수 있습니다. R, Scala, Haskell, SAS 등은 일부 논리를 복제 할 수 있습니다. 아마도 질문에 더 빨리 답할 수있을 것입니다. 그러나 파이썬은 좋은 (최상의?) 범용 도구를 만듭니다. 파이썬과 다른 언어로 R 코드를 실행할 수 있습니다. 해석 적이지만, pypy와 같은 고성능 기술과 도구는 약간의 노력만으로도 파이썬을 벤치 마크 도구만큼 빠르게 실행할 수 있습니다. 그리고 파이썬에는 모든 것에 관한 많은 라이브러리가 있습니다-위의 목록을 참조하십시오.
파이썬을 배우고 사용 해야하는지 묻는다면 제 대답은 '예'입니다. 그러나 하나의 도구로 해결되는 데이터 과학 문제는 거의 없습니다. 그것은 당신의 도구가 될 수 있지만 그것의 유일한 도구입니다. 제정신이없는 사람이 망치로 집을 짓지 않는 것처럼, 제정신 데이터 과학자는 단 하나의 도구 만 사용합니다.
사람들이 빅 데이터를 데이터 과학 및 비즈니스 인텔리전스와 어떻게 혼합하는지는 재미 있습니다.
첫째, 빅 데이터는 "많은 데이터"를 의미하므로 기존 데이터베이스에는 맞지 않는 정보가 많습니다. 그러나 때때로 빅 데이터는 적절한 "가치"정보가 아니라 문서, 이미지 등입니다.
따라서 빅 데이터를 처리하려면 속도가 필요합니다. 파이썬은 리그를 벗어 났으므로 R입니다. 그러나 CSV를 가져 와서 데이터베이스에 삽입하는 것만 큼 쉬운 작업이라면 ETL이므로 프로그래밍 할 필요가 없습니다.
그리고 정보가 줄어들면 파이썬, r 또는 원하는 것을 적용 할 수 있습니다. Excel조차도. 그러나이 단계에서 빅 데이터는 더 이상 크지 않고 기존 데이터입니다.
IMHO, Java는 빅 데이터 (전체 체인)에 더 적합하지만 사람들은 실제적이지 않은 이유로 파이썬을 기본값으로 사용합니다.