2017-12-26 29 views
0

나는 기존 Pandas 코드에 Pyspark 데이터 프레임을 통합/추가하는 데 많은 어려움을 겪고 있습니다.Pyspark와 Pandas는 공인 인증을 받았습니까?

1) Pandas 데이터 프레임을 Pyspark 데이터 프레임으로 변환하면 Pyspark 데이터 프레임이 Pandas 데이터 프레임만큼 풍부하지 않으므로 여러 작업이 제대로 변환되지 않습니다.

2) 동일한 코드 내에서 다른 데이터 세트를 처리하기 위해 Pyspark 데이터 프레임과 Pandas를 사용하도록 선택하면 맵을 통해 호출 된 함수에 팬더 데이터 프레임이 포함 된 경우 Pyspark 변환 (예 :지도)이 전혀 작동하지 않는 것처럼 보입니다.

저는 파이썬에서 팬더와 numpy를 사용하는 기존 코드를 가지고 있습니다. 단일 기계에서 잘 작동합니다. Spark 데이터 프레임이 팬더가 수행하는 많은 연산을 지원하지 않기 때문에 전체 코드를 Spark 데이터 프레임으로 변환하려는 초기 시도는 실패했습니다.

이제 Pyspark의 분산 계산을 위해 기존 코드에 pyspark를 적용하려고합니다. Spark 2.1.0 (Cloudera parcel)과 Anaconda 배포판 사용 - Python 2.7.14.

Pyspark와 Pandas는 공인 인증을 받았습니까? 문서를 찾을 수있는 좋은 참고 자료와 함께 사용하는 예는 무엇입니까?

귀하의 답변은 높이 평가됩니다.

답변

2

저는 pySpark가 팬더를 대신한다고 생각하지 않습니다. 나는 거대한 데이터에 분산 컴퓨팅이를 설정하고 싶은 곳이 바로으로 평가하는 것 나의 이해에 따라

나는 팬더 같은 많은 붙박이 기능이 없을 수도,

  • PySpark를 선택합니다 주요 초점은 제한된 양의 (하나 개의 시스템에 들어갈 수있는) 내가 레프 할 데이터의 과 컴퓨팅
  • 에게 판다를 배포 한 많은 내장 된 데이터 조작 기능.

편집 : 내가 분산 방식으로 실행하려는 것을 파이썬 코드를 기반으로 기존 팬더을 가지고 (통합 코멘트)

나의 도전이다. 따라서 pyspark 프레임 워크 내에서 팬더를 사용할 필요가 있습니다.

PySpark와 팬더 은 모두 'dataframe'로 자신의 데이터 구조를 참조하지만, 런타임에서 서로 다른 플랫폼입니다.

우리가 할 수있는 일은 팬더에서 PySpark (제안)까지 애플리케이션을 다시 작성하는 것입니다. PySpark에서 기능을 사용할 수 없다면 UDF 나 UDAF로 구현해야합니다.

또 다른 대안은 Pandas 데이터 프레임을 PySpark로 변환하는 것이지만 일반적으로 Pandas 데이터 프레임이 배포되지 않으며 나중에 병목이 될 수 있기 때문에 일반적으로 제안되지 않습니다.

예 (PySpark에 판다)

import pandas as pd 
pandas_df = pd.DataFrame([("foo", 1), ("bar", 2)], columns=("k", "v")) 
spark_df = spark.createDataFrame(pandas_df) 
+1

pyspark과 팬더 모두 'dataframe'로, 자신의 데이터 구조를 참조하지만, 런타임시 다른 플랫폼이다. 우리가 할 수있는 것은 팬더에서 pyspark로 응용 프로그램을 다시 작성하는 것뿐입니다. pyspark에서 기능을 사용할 수없는 경우 UDF 또는 UDAF – mrsrinivas

+1

@ user8708009로 구현해야합니다. "인증 됨"은 잘못된 용어이며 "함께 작업하는"것은 실제로 이들 사이의 변환으로 제한됩니다. 여기에 대한 답변 (및 의견)은 상황의 본질을 포착합니다 (아니요, 스파크 데이터 프레임과 함께 '판다'기능을 가지고 있지 않습니다. 실제로는 공통된 이름을 가진 다른 데이터 구조 임). 나는 그것을 받아들이라고 제안합니다. – desertnaut