2017-10-30 2 views
0

새로운 스파크/pyspark 사용자로서 로컬 모드에서 AWS t2.small ec2 인스턴스 (테스트 목적으로 ony)에서 실행되는 스크립트가 있습니다.기본 pyspark 문을 가속화하는 방법

즉. 스파크 = SparkSession 같은 기본 스파크 문의 속도에 관한, 내 질문에 초점을 맞출 수 있도록 내가 코드를 떠난

from __future__ import print_function 
from pyspark.ml.classification import NaiveBayesModel 
from pyspark.ml.evaluation import MulticlassClassificationEvaluator 
from pyspark.sql import SparkSession 
import ritc (my library) 
if __name__ == "__main__": 
    spark = SparkSession\ 
     .builder\ 
     .appName("NaiveBayesExample")\ 
     .getOrCreate() 
    ... 
    request_dataframe = spark.createDataFrame(ritc.request_parameters, ["features"]) 
    model = NaiveBayesModel.load(ritc.model_path) 
    ... 
    prediction = model.transform(ritc.request_dataframe) 
    prediction.createOrReplaceTempView("result") 
    df = spark.sql("SELECT prediction FROM result") 
    p = map(lambda row: row.asDict(), df.collect()) 
    ... 

...

날짜 시간 라이브러리 (안 사용 : 예를 들어 위의 3 가지 '범죄자'에 대한 타이밍이 있습니다.

'spark = SparkSession...' -- 3.7 secs 
'spark.createDataFrame()' -- 2.6 secs 
'NaiveBayesModel.load()' -- 3.4 secs 

왜 이렇게 긴 시간입니까?

약간의 배경 지식을 얻기 위해 위 스크립트와 같은 스크립트를 REST 서비스로 노출하는 기능을 제공하고자합니다. 2 위의 REST 요청이 서로 다른 실행 것이고, 예상치 못한 (임의) 번 일반적인 패턴은 다음과 같습니다 :

In supervised context: 
- service #1: train a model and save the model in the filesystem 
- service #2: load the model from the filesystem and get a prediction for a single instance 

(참고. -> 한 번 : 모델 훈련 - 긴 처리 시간 기대를 -> 여러 번 : 단일 인스턴스에 대한 예측 요청 - 밀리 초 단위의 처리 시간 예상 - 예 : < 400ms

내 생각에는 결함이 있습니까?이 목표를 달성하려면 극적으로 성능을 향상시킬 수 있습니까? 두 번째 소요 시간 012

대부분의 예술 ick/video/spark performance에 대한 토론을 통해 나는 '무거운'작업에 중점을 두었다. 위의 '열차 모델'작업은 실제로 '무거운'작업 일 수 있습니다. 프로덕션 환경에서 실행될 때 이것이 예상됩니다. 그러나 '단일 인스턴스에 대한 예측 요청'은 응답해야합니다.

아무도 도와 줄 수 있습니까?

미리 감사드립니다.

콜린 골드버그

답변

0

그래서 ApacheSpark이 방법으로 사용할 수 있도록 설계되었습니다. 예측을 위해 스트리밍 입력 데이터를 처리하는 것이 목표 인 경우 Spark Streaming을 살펴볼 수 있습니다. PMML 또는 MLeap과 같은 Spark 모델을 제공하는 다른 옵션을 살펴볼 수도 있습니다.

+0

빠른 응답을 보내 주셔서 감사합니다. 현재 스트리밍 데이터가 적용되는지 확신 할 수는 없지만 이것이 요인이 될 수 있습니다. 나는 PMML과 MLeap을 재빨리 시작해야 할 것이다. –

관련 문제