7

私はSparkを初めて使用し、現在sparklyパッケージを介してR APIを使用して使用しています。ハイブ クエリから Spark データ フレームを作成しました。dplyrソース テーブルでデータ型が正しく指定されていないため、パッケージの関数を利用してデータ型をリセットしようとしています。以下は私が試したコードです:

prod_dev <- sdf_load_table(...)
num_var <-  c("var1", "var2"....)
cat_var <-  c("var_a","var_b", ...)

pos1 <- which(colnames(prod_dev) %in% num_var)
pos2 <- which(colnames(prod_dev) %in% cat_var)

prod_model_tbl <- prod_dev %>% 
                mutate(age = 2016- as.numeric(substr(dob_yyyymmdd,1,4))) %>%
                mutate(msa_fg = ifelse(is.na(msacode2000), 0, 1)) %>% 
                mutate(csa_fg = ifelse(is.na(csacode), 0, 1)) %>%
                mutate_each(funs(factor), pos2) %>%
                mutate_each(funs(as.numeric), pos1)

prod_dev が R データ フレームの場合、コードは機能します。ただし、Spark データ フレームで使用すると、正しい結果が得られないようです。

> head(prod_model_tbl)


    Source:   query [?? x 99]
    Database: spark connection master=yarn-client app=sparklyr_test local=FALSE

    Error: org.apache.spark.sql.AnalysisException: undefined function     FACTOR; line 97 pos 2248 at org.apache.spark.sql.hive.HiveFunctionRegistry....

Spark データ フレームに必要な変更を加える方法を教えてください。

4

1 に答える 1