Slide 26
Slide 26 text
COPYRIGHT ©ADVANCED INTEGRATION TECHNOLOGY, INC. ALL RIGHTS RESERVED. 26
実装編③
■1手詰めに挑戦
#------------------------------------------------------------------------------------#
#
# Python for Spark 拡張の変換 - 素数はいくつ?
#
#------------------------------------------------------------------------------------
##---------------------------------------------------------
#必要なモジュールなどインポート
#---------------------------------------------------------
#SPSS用ランタイム
import spss.pyspark.runtime
from pyspark.sql.context import SQLContext
from pyspark.sql.types import IntegerType, StructField
#---------------------------------------------------------
#SPSS用Sparkコンテキスト設定
#---------------------------------------------------------
#Sparkコンテキスト生成
ascontext = spss.pyspark.runtime.getContext()
#SQLコンテキスト生成
sqlContext = ascontext.getSparkSQLContext()
#---------------------------------------------------------
#素数判定関数
#関数:chk_prime
#引数:num - 判定したい自然数
#戻り値 True : 素数 / False 素数ではない
#---------------------------------------------------------
def chk_prime(num):
#2より小さい場合は素数ではない
if num < 2:
return False
#1以上の数で割り算して余りが0になれば素数ではない
for i in range(2, num):
if num % i == 0:
return False
#判定処理を抜ければ素数
return True
#---------------------------------------------------------
#出力するスキーマを定義
#---------------------------------------------------------
#入力データのスキーマ読み込み
inputSchema = ascontext.getSparkInputSchema()
#入力スキーマを出力スキーマにコピー
outputSchema = inputSchema
#素数のフィールドを出力スキーマに追加
outputSchema.fields.append( StructField( '素数', IntegerType(), nullable=True ) )
outputSchema.fields.append( StructField( '素数カウント', IntegerType(), nullable=True ) )
#出力スキーマをセット
ascontext.setSparkOutputSchema(outputSchema)
• Python for Sparkのコード例 - 拡張の変換ノード
こちらは、自分で素数判定の関数を記述しています。