代码之家  ›  专栏  ›  技术社区  ›  Dhruv

在sbt控制台上运行Spark

  •  0
  • Dhruv  · 技术社区  · 1 年前

    我是Spark的新手,正在尝试在sbt控制台上运行它。我有一个合适的 build.sbt (因为代码在Intellij上运行良好),并且能够导入代码中的包。问题是,当在sbt控制台(终端)上运行时,执行器只是继续运行,无法完成任务。

    密码

    import org.apache.spark._
    val sc = new SparkContext("local[1]", "SimpleProg")
    val nums = sc.parallelize(List(1, 2, 3, 4));
    println(nums.reduce((a, b) => a - b))
    

    以下是来自不同控制台和方法的输出(使用- Xprint:typer )。

    在里面 sbt console (遗嘱执行人继续执行)

    [[syntax trees at end of                     typer]] // <console>
    package $line2 {
      object $read extends scala.AnyRef {
        def <init>(): type = {
          $read.super.<init>();
          ()
        };
        object $iw extends scala.AnyRef {
          def <init>(): type = {
            $iw.super.<init>();
            ()
          };
          object $iw extends scala.AnyRef {
            def <init>(): type = {
              $iw.super.<init>();
              ()
            };
            import org.apache.spark._;
            private[this] val sc: org.apache.spark.SparkContext = new org.apache.spark.SparkContext("local[1]", "SimpleProg", spark.this.SparkContext.<init>$default$3, spark.this.SparkContext.<init>$default$4, spark.this.SparkContext.<init>$default$5);
            <stable> <accessor> def sc: org.apache.spark.SparkContext = $iw.this.sc;
            private[this] val nums: org.apache.spark.rdd.RDD[Int] = $iw.this.sc.parallelize[Int](scala.collection.immutable.List.apply[Int](1, 2, 3, 4), $iw.this.sc.parallelize$default$2[Nothing])((ClassTag.Int: scala.reflect.ClassTag[Int]));
            <stable> <accessor> def nums: org.apache.spark.rdd.RDD[Int] = $iw.this.nums
          }
        };
        private[this] val INSTANCE: $line2.$read.type = this;
        <stable> <accessor> def INSTANCE: $line2.$read.type = $read.this.INSTANCE
      }
    }
    
    [[syntax trees at end of                     typer]] // <console>
    package $line2 {
      object $eval extends scala.AnyRef {
        def <init>(): $line2.$eval.type = {
          $eval.super.<init>();
          ()
        };
        <stable> <accessor> lazy val $result: org.apache.spark.rdd.RDD[Int] = $line2.$read.INSTANCE.$iw.$iw.nums;
        <stable> <accessor> lazy val $print: String = {
          $line2.$read.INSTANCE.$iw.$iw;
          val sb: StringBuilder = new scala.`package`.StringBuilder();
          sb.append("import org.apache.spark._\n");
          sb.append("\u001B[1m\u001B[34msc\u001B[0m: \u001B[1m\u001B[32morg.apache.spark.SparkContext\u001B[0m = ".+(scala.runtime.ScalaRunTime.replStringOf($line2.$read.INSTANCE.$iw.$iw.sc, 1000)));
          sb.append("\u001B[1m\u001B[34mnums\u001B[0m: \u001B[1m\u001B[32morg.apache.spark.rdd.RDD[Int]\u001B[0m = ".+(scala.runtime.ScalaRunTime.replStringOf($line2.$read.INSTANCE.$iw.$iw.nums, 1000)));
          sb.toString()
        }
      }
    }
    

    在火花壳中(此处代码运行良好)

    [[syntax trees at end of                     typer]] // <console>
    package $line15 {
      sealed class $read extends AnyRef with java.io.Serializable {
        def <init>(): $line15.$read = {
          $read.super.<init>();
          ()
        };
        sealed class $iw extends AnyRef with java.io.Serializable {
          def <init>(): $iw = {
            $iw.super.<init>();
            ()
          };
          private[this] val $line3$read: $line3.$read.type = $line3.$read.INSTANCE;
          <stable> <accessor> def $line3$read: $line3.$read.type = $iw.this.$line3$read;
          import $iw.this.$line3$read.$iw.$iw.spark;
          import $iw.this.$line3$read.$iw.$iw.sc;
          sealed class $iw extends AnyRef with java.io.Serializable {
            def <init>(): $iw = {
              $iw.super.<init>();
              ()
            };
            import org.apache.spark.SparkContext._;
            sealed class $iw extends AnyRef with java.io.Serializable {
              def <init>(): $iw = {
                $iw.super.<init>();
                ()
              };
              sealed class $iw extends AnyRef with java.io.Serializable {
                def <init>(): $iw = {
                  $iw.super.<init>();
                  ()
                };
                import $iw.this.$line3$read.$iw.$iw.spark.implicits._;
                sealed class $iw extends AnyRef with java.io.Serializable {
                  def <init>(): $iw = {
                    $iw.super.<init>();
                    ()
                  };
                  import $iw.this.$line3$read.$iw.$iw.spark.sql;
                  sealed class $iw extends AnyRef with java.io.Serializable {
                    def <init>(): $iw = {
                      $iw.super.<init>();
                      ()
                    };
                    import org.apache.spark.sql.functions._;
                    sealed class $iw extends AnyRef with java.io.Serializable {
                      def <init>(): $iw = {
                        $iw.super.<init>();
                        ()
                      };
                      sealed class $iw extends AnyRef with java.io.Serializable {
                        def <init>(): $iw = {
                          $iw.super.<init>();
                          ()
                        };
                        private[this] val nums: org.apache.spark.rdd.RDD[Int] = $iw.this.$line3$read.$iw.$iw.sc.parallelize[Int](scala.collection.immutable.List.apply[Int](1, 2, 3, 4), $iw.this.$line3$read.$iw.$iw.sc.parallelize$default$2[Nothing])((ClassTag.Int: scala.reflect.ClassTag[Int]));
                        <stable> <accessor> def nums: org.apache.spark.rdd.RDD[Int] = $iw.this.nums
                      };
                      private[this] val $iw: $iw = new $iw.this.$iw();
                      <stable> <accessor> def $iw: $iw = $iw.this.$iw
                    };
                    private[this] val $iw: $iw = new $iw.this.$iw();
                    <stable> <accessor> def $iw: $iw = $iw.this.$iw
                  };
                  private[this] val $iw: $iw = new $iw.this.$iw();
                  <stable> <accessor> def $iw: $iw = $iw.this.$iw
                };
                private[this] val $iw: $iw = new $iw.this.$iw();
                <stable> <accessor> def $iw: $iw = $iw.this.$iw
              };
              private[this] val $iw: $iw = new $iw.this.$iw();
              <stable> <accessor> def $iw: $iw = $iw.this.$iw
            };
            private[this] val $iw: $iw = new $iw.this.$iw();
            <stable> <accessor> def $iw: $iw = $iw.this.$iw
          };
          private[this] val $iw: $iw = new $iw.this.$iw();
          <stable> <accessor> def $iw: $iw = $iw.this.$iw
        };
        private[this] val $iw: $iw = new $read.this.$iw();
        <stable> <accessor> def $iw: $iw = $read.this.$iw
      };
      object $read extends scala.AnyRef with Serializable {
        def <init>(): type = {
          $read.super.<init>();
          ()
        };
        private[this] val INSTANCE: $line15.$read = new $read();
        <stable> <accessor> def INSTANCE: $line15.$read = $read.this.INSTANCE;
        <synthetic> private def readResolve(): Object = $line15.$read
      }
    }
    

    在函数中( 命名温度 )在 sbt控制台 (这同样有效)

    [[syntax trees at end of                     typer]] // <console>
    package $line7 {
      object $read extends scala.AnyRef {
        def <init>(): type = {
          $read.super.<init>();
          ()
        };
        object $iw extends scala.AnyRef {
          def <init>(): type = {
            $iw.super.<init>();
            ()
          };
          object $iw extends scala.AnyRef {
            def <init>(): type = {
              $iw.super.<init>();
              ()
            };
            import org.apache.spark._;
            object $iw extends scala.AnyRef {
              def <init>(): type = {
                $iw.super.<init>();
                ()
              };
              import $line6.$read.INSTANCE.$iw.$iw.$iw.$iw.temp;
              object $iw extends scala.AnyRef {
                def <init>(): type = {
                  $iw.super.<init>();
                  ()
                };
                private[this] val res1: Unit = $line6.$read.INSTANCE.$iw.$iw.$iw.$iw.temp();
                <stable> <accessor> def res1: Unit = $iw.this.res1
              }
            }
          }
        };
        private[this] val INSTANCE: $line7.$read.type = this;
        <stable> <accessor> def INSTANCE: $line7.$read.type = $read.this.INSTANCE
      }
    }
    
    [[syntax trees at end of                     typer]] // <console>
    package $line7 {
      object $eval extends scala.AnyRef {
        def <init>(): $line7.$eval.type = {
          $eval.super.<init>();
          ()
        };
        <stable> <accessor> lazy val $result: Unit = $line7.$read.INSTANCE.$iw.$iw.$iw.$iw.res1;
        <stable> <accessor> lazy val $print: String = {
          $line7.$read.INSTANCE.$iw.$iw.$iw.$iw;
          ""
        }
      }
    }
    
    0 回复  |  直到 1 年前