java.lang.NumberFormatException: For input string: "local"

2015-06-09 15:57:34   作者:MangoCool   来源:MangoCool

在win7系统下,编写一个简单的Scala示例程序,本地单机执行Spark应用,抛出异常:Exception in thread "main" java.lang.NumberFormatException: For input string: "local"

新建了一个Scala Project,copy了Spark中example-SparkPi,代码如下:

import org.apache.spark._
import scala.math.random

object SparkPi {  def main(args: Array[String])
  {
    val conf = new SparkConf()
    conf.setAppName("SparkPi").setMaster("local").set("spark.executor.memory", "1g")//细微改动
    val spark = new SparkContext(conf)
    val slices = if (args.length > 0) args(0).toInt else 2
    val n = 100000 * slices
    val count = spark.parallelize(1 to n, slices).map{ i =>
      val x = random * 2 - 1
      val y = random * 2 - 1
      if (x*x + y*y < 1) 1 else 0
    }.reduce(_ + _)
    println("Pi is roughly " + 4.0 * count / n)
    spark.stop()
  }
}

运行配置如下:

点击Run->Edit Configuratioins...

点击运行结果:

Exception in thread "main" java.lang.NumberFormatException: For input string: "local"
	at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
	at java.lang.Integer.parseInt(Integer.java:492)
	at java.lang.Integer.parseInt(Integer.java:527)
	at scala.collection.immutable.StringLike$class.toInt(StringLike.scala:229)
	at scala.collection.immutable.StringOps.toInt(StringOps.scala:31)
	at SparkPi$.main(SparkPi.scala:11)
	at SparkPi.main(SparkPi.scala)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)

在网上search资料后发现,原来配置信息中的Program arguments是代表本地单机执行Spark程序的传入参数!

从程序来看,我们传入的参数应该是一个整型数据,于是果断改成了10。如下:

再次运行,结果如下:

Pi is roughly 3.14022

问题解决,并记录此文!希望能帮到像我一样热忠大数据却又不得不经历入门阶段的菜菜鸟们!

标签: Spark local Exception Scala win7

分享:

上一篇java.lang.NoSuchMethodError: scala.collection.immutable.HashSet$.empty()Lscala/collection/immutable/HashSet;

下一篇Spark:一个高效的分布式计算系统

关于我

一个喜欢唱歌,热衷旅行,爱好电子产品的码农。没事,跟三五好友吼上几嗓子,约上几个背着行囊去露营或者宅在家里抱着孩子敲代码。

座右铭:当你的才华还撑不起你的野心的时候,你就应该静下心来学习,永不止步!

            人生之旅历途甚长,所争决不在一年半月,万不可因此着急失望,招精神之萎葸。


Copyright 芒果酷(mangocool.com) All rights reserved. 湘ICP备14019394号

免责声明:本网站部分文章转载其他媒体,意在为公众提供免费服务。如有信息侵犯了您的权益,可与本网站联系,本网站将尽快予以撤除。