2017-01-12 2 views
0

의해 중첩 필드를 생성 I과 같은 포맷으로 데이터 프레임을 가지고 해당 ID가 소유 한 제품. mapPartitions()로 일부 코드를 시도했지만 스키마를 추론 할 수 없다는 오류가 발생합니다. 나는지도 함수에서 뭔가를 돌려 주어야한다는 것을 알고 있지만, 나는 그것을 알아낼 수 없다. 경우 다른 사람에 스파크 1.6Pyspark 파티션

편집

를 사용

이 질문을 가지고, 실제로 combineByKey를 사용하여 여기에 솔루션을 갔다() : https://stackoverflow.com/a/27043562/1181412

그것은 작업에 더 많은 유연성을 준 더 세분화 된 방법으로 필드를

+0

실제로이 단계는 나에게 가까이 다가 가려고하는 것처럼 진행될 것입니다. 감사! – ElPresidente

답변

0

조금 어수선하지만 작동

a = sqlContext.createDataFrame(sc.parallelize([ 
      (1, 'A'), (1, 'B'), (1, 'C'), 
      (2, 'A'), 
      (3, 'A'), (3, 'C')]), ['id', 'product']) 

sqlContext.createDataFrame(
    a.rdd.reduceByKey(lambda x, y: x + ',' + y), 
    ['id', 'products']).show()