2017-02-03 11 views
0

Spark에서 데이터를 가지고 있으며 추가 분석을 위해 Pandas 데이터 프레임으로 변환하려고합니다. 이 일을하는 것 :Spark에서 Pandas Dataframe 반복적으로

dataset = sqlContext.sql('SELECT * FROM TEMP') 

df=dataset.toPandas() 

그러나 테이블이 꽤 큰 것처럼 보이고 팬더 처리 중에 많은 시간을 소비합니다.

toPandas() 함수에는 성능 향상을 위해 데이터를 반복적으로 전송하기위한 iterations 또는 청크 크기 (예 : 팬더의 read_csv와 같은)가 있습니까?

감사합니다.

+0

테이블의 크기는 어느 정도입니까? 너무 크면 edgenode에서 RAM이 부족할 수 있습니다. pandas 데이터 프레임은 일반적으로 edgenode에 저장되는 반면 스파크 데이터 프레임은 여러 노드에 저장된다는 사실을 이해해야합니다. 위의 작업을 수행하려면 모든 여러 노드에서 데이터를 수집해야하므로 테이블이 클 경우 많은 시간이 필요합니다. –

+0

팬더에서 이것을하고 스파크를 일으키고 싶지 않은 특별한 이유가 있습니까? –

답변

0

toPandas() 메서드 자체에는 옵션이 없습니다. 함수 here의 소스를 살펴보십시오.

코멘트 작성자가 언급 한대로 (그리고 그 방법에 대한 문서화 스트링에서 지적했듯이) 신체적으로 위험 할 수 있습니다. 나는 당신이 할 수없는 팬더로 무엇을 할 수 있는지 확신하지 못합니다. 스파크하는 법을 이해하십시오.