7장. 외부 데이터 소스와 상호 작용
이 작품은 AI를 사용하여 번역되었습니다. 여러분의 피드백과 의견을 환영합니다: translation-feedback@oreilly.com
Spark에서 알고리즘을 실행하려면 데이터 소스에서 입력 데이터를 읽은 다음, 일련의 PySpark 변환 및 작업(DAG로 표현)의 형태로 알고리즘을 적용하고, 마지막으로 원하는 출력을 대상 데이터 소스에 써야 합니다. 따라서 성능이 좋은 알고리즘을 작성하려면 외부 데이터 소스에서 데이터를 읽고 쓰는 방법을 이해하는 것이 중요합니다.
이전 장에서는 Spark의 기본 제공 데이터 소스(RDD 및 데이터 프레임)와 상호 작용하는 방법에 대해 살펴봤습니다. 이 장에서는 Spark가 외부 데이터 소스와 인터페이스하는 방법에 중점을 두겠습니다.
그림 7-1에서 볼 수 있듯이, Spark는 데이터 소스 인터페이스를 통해 Linux 파일 시스템, Amazon S3, HDFS, Hive 테이블 및 관계형 데이터베이스(예: Oracle, MySQL 또는 PostgreSQL)와 같은 광범위한 외부 스토리지 시스템에서 데이터를 읽을 수 있습니다. 이 장에서는 데이터를 읽어들인 다음 추가 처리를 위해 RDD 또는 데이터프레임으로 변환하는 방법을 보여드립니다. 또한 파일, Amazon S3 및 JDBC 호환 데이터베이스와 같은 외부 스토리지 시스템에 Spark의 데이터를 다시 쓰는 방법도 보여드리겠습니다.
그림 7-1. Spark 외부 데이터 소스
관계형 데이터베이스
관계형 데이터베이스부터 시작하겠습니다. 관계형 데이터베이스는 테이블 자체를 재구성할 필요 없이 다양한 방식으로 데이터에 액세스하거나 재조합할 수 있는 공식적으로 설명된 테이블 집합(SQLCREATE TABLE 문을 사용하여 생성)으로 구성된 데이터 항목 모음입니다. 현재 소셜 미디어 네트워크 기록, 재무 기록, 의료 기록, 개인 정보 및 제조 데이터 등의 데이터 저장을 위해 오픈 소스 관계형 데이터베이스(MySQL 및 PostgreSQL 등)가 주로 선택되고 있습니다. MS SQL Server, Oracle과 같이 잘 알려져 있고 널리 사용되는 라이선스가 있는 독점 관계형 데이터베이스도 많이 있습니다.
비공식적으로 관계형 데이터베이스 테이블에는 그림 7-2와 같이 행과 명명된 열의 집합이 있습니다. 테이블의 각 행은 고유한 키(기본 키라고 함)를 가질 수 있습니다. 테이블의 행은 연결된 행의 고유 키에 대한 열을 추가하여 다른 테이블의 행에 연결할 수 있습니다(이러한 열을 외래 키라고 함).
그림 7-2. 관계형 데이터베이스 테이블 예제
PySpark는 관계형 데이터베이스와 기타 외부 데이터 소스에서 데이터를 읽고 쓰기 위한 두 가지 클래스를 제공합니다. ...