我作为论坛的活跃用户相对较新,但是首先要感谢你们所有的贡献,因为我多年来一直在寻找答案......
今天,我有一个问题,没有人解决,或者我找不到......
我正在尝试从s3(AWS)并行读取文件到spark(本地计算机)作为测试系统的一部分。我使用了mclapply,但是当设置更多的1核时,它就失败了......
示例:(使用一个核心时相同的代码有效,但使用2时失败)
new_rdd_global< - mclapply(seq(file_paths),function(i){spark_read_parquet(sc,name = paste0(" rdd _",i),path = file_paths [i])},mc。 cores = 1)
new_rdd_global< - mclapply(seq(file_paths),function(i){spark_read_parquet(sc,name = paste0(" rdd _",i),path = file_paths [i])},mc。核心= 2) 警告信息: 在mclapply(seq(file_paths),function(i){: 所有计划的核心在用户代码中遇到错误
任何建议???
提前致谢。
答案 0 :(得分:0)
只需通过1 spark_read_parquet()
调用将所有内容读入一个表,这样Spark就可以为您处理并行化。如果你需要单独的表,你可以在之后拆分它们,假设有一列告诉你数据来自哪个文件。通常,在使用Spark with R时,您不应该使用mcapply()
。