2016-07-26 2 views
1

나는 수십억 개의 레코드가있는 데이터 세트에서 groupBy()을 실행 중이며 결과 출력 (pyspark GroupedData 개체)을 저장하여 나중에 비 직렬화하고 그 지점에서 다시 시작할 수 있습니다. 필요한).pyspark GroupedData 객체를 직렬화하는 방법은 무엇입니까?

df.groupBy("geo_city") 
<pyspark.sql.group.GroupedData at 0x10503c5d0> 

나는 텍스트 파일이나 마루/아 브로 형식 (변환 작업이 비싸다으로)에 저장하기 위해 DataFrames 또는 RDDs에 GroupedData 오브젝트를 변환하지 않도록합니다. 더 빠른 읽기/쓰기를 위해 GroupedData 객체를 일부 바이너리 형식으로 저장하는 다른 효율적인 방법이 있습니까? 스파크에서 피클과 비슷한 것 같아?

답변

2

GroupedData은 실제로 문제가 아니기 때문에 아무 것도 없습니다. 데이터에 대한 연산을 전혀 수행하지 않습니다. 연속적인 agg의 결과에 대해 작업을 실행할 때 실제 집계가 어떻게 진행되어야 하는지를 설명합니다.

아마 JVM 개체의 밑줄을 직렬화하고 나중에 복원 할 수는 있지만 시간 낭비 일 수 있습니다. groupBy은 수행해야 할 작업을 설명하기 때문에 GroupedData 개체를 처음부터 다시 만드는 비용은 무시할 수 있어야합니다.

관련 문제