我想使用mutate生成正态分布的随机数作为列。我尝试使用runif()
,但它会在大规模数据上引发错误。
extract_grp <- extract_grp %>%
mutate(rand = runif(sdf_nrow(extract_grp)))
glimpse(extract_grp)
我得到的错误是:
错误:org.apache.spark.sql.AnalysisException:未定义的函数: &#39; RUNIF&#39 ;.此功能既不是注册的临时功能也不是 在数据库中注册的永久功能&#39; temp_data&#39;。第1行 位于org.apache.spark.sql.catalyst.catalog.SessionCatalog.failFunctionLookup(SessionCatalog.scala:999)的pos 101 在org.apache.spark.sql.hive.HiveSessionCatalog.lookupFunction0(HiveSessionCatalog.scala:202) 在org.apache.spark.sql.hive.HiveSessionCatalog.lookupFunction(HiveSessionCatalog.scala:174) 在org.apache.spark.sql.catalyst.analysis.Analyzer $ ResolveFunctions $$ anonfun $ apply $ 13 $$ anonfun $ applyOrElse $ 6 $$ anonfun $ applyOrElse $ 39.apply(Analyzer.scala:897)
答案 0 :(得分:0)
rand()在一定程度上解决了我的问题。
extract_grp <- extract_grp %>%
mutate(rand = rand())
glimpse(extract_grp)
我可以为我的hive表生成随机序列。但是我所坚持的是使用播种。 set.seed()适用于本地R,但确实在sparklyr上执行。