mclapply和spark_read_parquet

时间:2017-10-27 10:51:56

标签: sparklyr mclapply

我作为论坛的活跃用户相对较新,但是首先要感谢你们所有的贡献,因为我多年来一直在寻找答案......

今天,我有一个问题,没有人解决,或者我找不到......

我正在尝试从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){:     所有计划的核心在用户代码中遇到错误

任何建议???

提前致谢。

1 个答案:

答案 0 :(得分:0)

只需通过1 spark_read_parquet()调用将所有内容读入一个表,这样Spark就可以为您处理并行化。如果你需要单独的表,你可以在之后拆分它们,假设有一列告诉你数据来自哪个文件。通常,在使用Spark with R时,您不应该使用mcapply()