2016-07-20 5 views
1

データフレームdfには何百万行もあります。私はddplyとユーザ定義関数udfを使用しています。RのddplyをsparkR関数に変換する

res <- ddply(df, c("id"),function(x){udf(x)} 

これはかなりうまく動作しますが、それは理由udfの私は推測する(それは約4時間かかります)非常に遅いです。多くのケースをチェックします。

私はsparkRで同じ機能を実行したいと思います。 SparkはR環境に統合されています。私はsparkRの基本操作を行うことができますが、ddplyを置き換えることができる関数は見つかりませんでした。誰にもアイデアはありますか?

答えて

0

はSparkR 2.0を使用すると、(「ID」とし、各行の列の上に独自の関数を適用することによって、gruping)このような何かを実行するためにgapplyCollect機能を使用することができます。

res <- gapplyCollect(
    df, 
    "id", 
    function(key, x) { 
     y <- data.frame(key, max(x$column1), mean(x$column2), udf(x$column3)) 
     colnames(y) <- c("id", "max_col1", "mean_col2", "udf_result") 
     y 
    }) 

私はこのことができます願っています。

関連する問題