Python for Spark를 사용한 스크립팅
SPSS Modeler 는 데이터를 처리하기 위해 Apache Spark 프레임워크를 사용하여 Python 스크립트를 실행할 수 있습니다. 이 문서에서는 제공된 인터페이스에 대한 Python API 설명을 제공합니다.
SPSS Modeler 설치에는 Spark 배포가 포함되어 있습니다.
데이터 액세스
inputData = asContext.getSparkInputData()asContext.setSparkOutputData(outputData)outputData = sqlContext.createDataFrame(rdd)데이터 모델 정의
데이터를 생성하는 노드는 노드의 필드 가시적 다운스트림을 설명하는 데이터 모델 도 정의해야 합니다. Spark SQL 용어에서 데이터 모델은 스키마입니다.
Python/Spark 스크립트는 pyspsark.sql.types.StructType 오브젝트 양식으로 출력 데이터 모델을 정의합니다. StructType 은 출력 데이터 프레임의 행을 설명하며 StructField 오브젝트 목록에서 구성됩니다. 각 StructField 는 출력 데이터 모델의 단일 필드를 설명합니다.
:schema 속성을 사용하여 입력 데이터에 대한 데이터 모델을 얻을 수 있습니다.inputSchema = inputData.schemaStructField 생성자를 사용하여 작성할 수 있습니다.field = StructField(name, dataType, nullable=True, metadata=None)생성자에 대한 정보는 Spark 문서를 참조하십시오.
최소한 필드 이름 및 해당 데이터 유형을 제공해야 합니다. 선택적으로 메타데이터를 지정하여 필드에 대한 측정, 역할 및 설명을 제공할 수 있습니다 ( 데이터 메타데이터참조).
DataModelOnly 모드
SPSS Modeler 는 노드가 실행되기 전에 노드의 출력 데이터 모델을 알아야 다운스트림 편집을 사용할 수 있습니다. Python/Spark 노드에 대한 출력 데이터 모델을 얻기 위해 SPSS Modeler 는 사용 가능한 데이터가 없는 특수 데이터 모델 전용 모드에서 스크립트를 실행합니다. 스크립트는 Analytic Server 컨텍스트 오브젝트에서 isComputeDataModelOnly 메소드를 사용하여 이 모드를 식별할 수 있습니다.
if asContext.isComputeDataModelOnly():
inputSchema = asContext.getSparkInputSchema()
outputSchema = ... # construct the output data model
asContext.setSparkOutputSchema(outputSchema)
else:
inputData = asContext.getSparkInputData()
outputData = ... # construct the output data frame
asContext.setSparkOutputData(outputData)모델 빌드
모델을 작성하는 노드는 모델을 적용하는 노드가 나중에 정확하게 다시 작성할 수 있도록 모델을 충분히 설명하는 일부 컨텐츠 를 실행 컨텍스트로 리턴해야 합니다.
모델 컨텐츠는 키 및 값의 의미가 작성 및 스코어 노드에만 알려져 있고 어떤 방식으로든 SPSS Modeler 에 의해 해석되지 않는 키/값 쌍의 관점에서 정의됩니다. 선택적으로 노드는 SPSS Modeler 가 모델 너깃에서 사용자에게 알려진 유형의 값을 표시할 수 있도록 MIME 유형을 값에 지정할 수 있습니다.
asContext.setModelContentFromString(key, value, mimeType=None)value = asContext.getModelContentToString(key)asContext.setModelContentFromPath(key, path)이 경우 번들에 다양한 컨텐츠 유형이 포함될 수 있으므로 MIME 유형을 지정하는 옵션이 없습니다.
path = asContext.createTemporaryFolder()path = asContext.getModelContentToPath(key)오류 처리
spss.pyspark.exceptions모듈에 사전 정의되어 있습니다. 예를 들어,from spss.pyspark.exceptions import ASContextException
if ... some error condition ...:
raise ASContextException("message to display to user")