2017-12-08 19 views
0

Scala/Sparkの深い学習モデルをPython/PySparkに翻訳しています。 dfを読むと、すべての変数が文字列型として解釈されます。私はフロートとしてそれらをキャストする必要があります。複数の変数を持つPython/Sparkキャスト - double型の列

format_number(result['V1'].cast('float'),2).alias('V1') 

が、31列を一度にそれをすべて行う方法 があります: は1で、このいずれかを実行することは簡単ですが、私はそれはこのようになると思います。 列は、 "V28" を "V1" と "時間"、 "金額"、 "クラス" です

それに

Scalaのソリューションはこれです:

// cast all the column to Double type. 
val df = raw.select(((1 to 28).map(i => "V" + i) ++ Array("Time", "Amount", "Class")).map(s => col(s).cast("Double")): _*) 

https://github.com/intel-analytics/analytics-zoo/blob/master/apps/fraudDetection/Fraud%20Detction.ipynb

どのように行うにはPySparkでも同じですか?

答えて

1

使用の内包表記:

result.select([ 
    format_number(result[c].cast('float'),2).alias(c) for c in result.columns 
]) 
関連する問題