小编Lae*_*ner的帖子

Spark RDD - 避免shuffle - 分区是否有助于处理大文件?

我有一个大约10个平面文件的应用程序,每个文件的价值超过200MM +记录.业务逻辑涉及按顺序连接所有这些逻辑.

我的环境:1个主站 - 3个从站(用于测试我为每个节点分配了1GB内存)

大多数代码只针对每个连接执行以下操作

 RDD1 = sc.textFile(file1).mapToPair(..)

 RDD2 = sc.textFile(file2).mapToPair(..) 

 join = RDD1.join(RDD2).map(peopleObject)
Run Code Online (Sandbox Code Playgroud)

任何调整建议,如重新分区,并行化......?如果是这样,有什么最佳做法可以提出重新分配的好数字?

使用当前配置,该作业需要一个多小时,我看到几乎每个文件的shuffle写入> 3GB

apache-spark spark-dataframe

5
推荐指数
0
解决办法
2127
查看次数

SparkJava 变量范围

我正在开发一个 SparkJava(不是 Apache Spark)应用程序,我想在前置过滤器和后置路由之间共享一个对象。过滤器和路由在不同的类中定义。我不愿意继续使用会话,因为它是一个移动应用程序 json api,从理论上讲,它应该是无会话的。变量范围应该是从请求处理开始到结束。

    before(Main.API_PROTECTED + "/*", (req, res) -> {
        String token = req.headers("Authorization");
        if (token == null | "".equals(token)) {
            halt(401, "You're not welcome.");
        } else {
            Partner partner = new PartnerDAO().getPartnerByToken(token.replace("Bearer ", ""));
            if (partner == null) {
                halt(401, "You're not welcome.");
            }
        }
    });
Run Code Online (Sandbox Code Playgroud)

有上面的 before 过滤器,我想从中与下面的 post 路由共享合作伙伴对象:

        post(Main.API_PROTECTED + "/vendors",
            (req, res) -> {
                // Do stuff to insert Vendors in the Database, verifying access control using the partner object
                return ""; …
Run Code Online (Sandbox Code Playgroud)

spark-java

2
推荐指数
1
解决办法
954
查看次数

标签 统计

apache-spark ×1

spark-dataframe ×1

spark-java ×1