2017-06-28 10 views
1

私は42,457行と785列を含むRのデータセットを扱っています。最初の列はバイナリ応答変数(labelと呼ばれます)で、残りの列はバイナリ機能です。H2Oデータフレームのカラム制限?

rsparklinghereと記載)を使用してロジスティック回帰モデルに適合しようとしましたが、エラーが発生しました。私はこれを、この表のSparkバージョンをH2Oデータフレームに変換するステップにたどりました。

私がテストに使用している機能は次のとおりです。スパークインスタンスscは稼働中とdfある標準Rデータフレームとして設定された生データである:

load_h2o <- function(df, rows = nrow(df), cols = ncol(df)) { 
     df <- df[1:rows, 1:cols] 
     copy_to(sc, df, "df", overwrite = TRUE) 
     df_tbl <- tbl(sc, "df") 
     h2o_tbl <- as_h2o_frame(sc, df_tbl, strict_version_check=FALSE) 
     return(h2o_tbl) 
} 

df$labelの頭部が1 1 1 0 0 0あります。しかし、データセット全体をロードすると、load_h2o(raw_data)の結果のlabel列の先頭は0 0 0 0 0 0です。実際、H2Oデータフレーム内のすべての値は0である。列の数を200(すなわち、load_h2o(raw_data, cols = 200))に制限すると、結果として得られるH2Oデータフレームは、期待どおりにすべてのデータを含む。 cols = 201の場合、すべてゼロに戻ります。

最後に、h2o::h2o.importFileでディスクから直接データセットをロードすると、完全なデータセットが問題なく処理され、ロジスティック回帰に適合することができます。しかし、私はパッケージ内でオブジェクトを配布するためにRのデータフレームからロードできるようにしたいと思います。

このワークフローの最大列数に制限はありますか?

答えて

0

スパーク1.6.2を使用していますが、これはknown bugと思われます。

0

H2Oに明示的な列の制限はありません(785ではそれほど大きくありません)。スパーク1.6は今は非常に古いです、私は前進することをお勧めします。

を参照してください場合は、この問題に関連している可能性があり見ているもの:もしそうなら

https://0xdata.atlassian.net/browse/PUBDEV-3808

は、発見された1つの回避策はH2Oに渡す前に)(スパークでのデータフレームを.cacheすることでした。

関連する問題