2017-03-16 1 views
-1

hdfs에서 spark 클러스터 (독립 실행 형 모드)로 데이터를로드하는 동안 parquet 또는 orc 파일이 첫 번째 인스턴스에서 메타 데이터 또는 전체 데이터를 읽는지 여부를 의심스럽게 생각합니다. 필터를 적용하여 전체 데이터를로드하고 필터를 적용할지 여부 또는 선택된 열만 읽는 지 여부와 전체 데이터가 스파크에 복사 될지 여부를 지정합니다.spark에서 hdfs의 orc/parquet 파일 읽기

미리 감사드립니다. ..

답변

0

필자가 정확히 무슨 뜻인지 확실하지 않지만, 일반적으로 말하자면 Parquet이나 ORC와 같은 기둥 형 구조 파일에 액세스 할 때 특정 열을 선택하면 다른 열이 아닌 메모리로만 읽게됩니다.

특히 ds.filter ("...")와 같은 것을 묻는 경우 필터에 응답하는 데이터를 메모리로만 읽는 기능을 "Predicate pushdown"이라고합니다. 일반적으로 Spark에서 사용할 수 있지만 정확히 무엇을 하려는지에 달려 있습니다. 예를 들어 AFAIA의 경우 Spark는 Parquet 파일의 복잡한 입력 열에 대한 술어 푸시 다운을 수행 할 수 없습니다.

가능한 경우 관련 열을 선택하고 필터링하는 것이 좋습니다. 술어 푸시 다운이 지원되는 경우 복잡한 유형을 사용하거나 Google에서 SQL 검사를 실행하십시오. 파일을 HDFS에 또는 내가 전체 데이터를로드하고 여기에 필터를 적용하거나 여부 필터를 적용하면 다른 곳 S3와 같은 동작은 동일

+0

고마워 ... 스파크와 HDFS를 별도의 클러스터에서 사용하고 있으며 spark에서 클러스터 관리자로 YARN을 사용하지 않고있어 특정 열을 선택하거나 파일의 특정 레코드를 필터링하는 데있어 스파크가 HDFS에서 어떻게 제어되는지 이해할 수 없습니다. – Consumpta

+0

특정 열 선택은 Parquet 형식 (및 ORC와 같은 다른 유사한 형식)의 기능입니다. 당신은 여기에서 그것을 읽을 수있다 : http://www.svds.com/dataformats/. Spark는 HDFS에서 "통제"하지 않습니다. 그것에서 읽고 쓰십시오. 그것에 관하여 저장 기계 같이 생각하십시오. 원 사는 또한 관련이 없습니다. 자원 관리 (응용 프로그램, CPU, 메모리)를 담당하며 저장 장치를 다루지 않습니다. –

0

을해야하는 경우

또한, 그것은 중요하지 않습니다 이는 판독 전용 필터 .. 변환이 완료되면

스파크 메모리로 데이터를로드하지 않고, 그것에서 수행되는 모든 작업 까지 파일로부터 데이터를로드 할 것이다. 이것은 게으른 평가 때문입니다.

+0

이 맞지만 그가 물었던 것 같지는 않습니다 .. 나는 그가 필터링 된 데이터로 무엇인가하고 싶어한다고 가정하지만 성능에 대해 걱정했습니다. –

관련 문제