SSブログ

【Hadoop MapReduce】文字列とfloatの比較 [Hadoop / Spark]

Pythonを使って、MapperとReducerを書いていたのだが、初歩的なミスをいくつかしたのでその備忘録として。

文字列の大小を比較する際
salesMax = max(thisSale, salesMax)
という関数を使ったのだが、上手くmax値を集計できていませんでした。

よくよく調べてみると、
thisSaleは文字型
salesMaxは数値型でした。

驚きなのが、文字型と数値型を比較できることなのですが。。。

自分としては、文字型と数値型を比較するとエラーで比較できないと思っていたのですが、プログラムの方で良しなに(?)大小比較をしていたようで、

499.99
99.99

これらを文字列として、比較すると、99.99の方が選ばれて変な結果になってしまいました。

正しく書くと、
salesMax = max(float(thisSale), salesMax)
と数値型にそろえる必要があります。

nice!(29)  コメント(0)  トラックバック(0) 

nice! 29

コメント 0

トラックバック 0