2017-12-07 13 views
0

次のコードがあります。私は瓶にそれを変換しましたClassNotFoundException

import org.apache.spark.SparkContext 
import org.apache.spark.SparkConf 
import org.apache.spark.sql.SparkSession 
import org.apache.spark.sql.SQLContext 


case class Student (StudentID: Long, 
           creationdate : java.sql.Timestamp, 
           mark1 : String, 
           mark2 : String 
           ) 

object Main { 
    def main(args: Array[String]): Unit = { 
    val conf = new SparkConf().setAppName("EMRCustomerApplication") 
    conf.set("spark.driver.allowMultipleContexts","true") 
    val spark = SparkSession 
     .builder() 
     .appName("Spark In Action") 
     .master("local") 
     .enableHiveSupport() 
     .getOrCreate() 
    System.setProperty("hive.metastore.uris", "thrift://internal-shared-hive-metastore-elb-550897717.us-west-2.elb.amazonaws.com:9083") 
    System.setProperty("hive.metastore.execute.setugi", "false") 
    System.setProperty("spark.driver.allowMultipleContexts","true") 
    val sc = new SparkContext(conf) 
    conf.set("spark.driver.allowMultipleContexts","true") 
    import spark.implicits._ 

    val allRecordsDF = spark.sql(""" select * fromstudent """) 


    } 
} 

私は以下の例外を取得しています。私は - クラスのオプションは、スパークジャーのメインクラスを言及することだと思った。これは私が実行したコマンドです。

spark-submit --class "Main" s3://Users/test/test_2.10-1.0.jar 

私はそれをしました。誰が問題であるか見ることができます。

java.lang.ClassNotFoundException: Main 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:348) 
    at org.apache.spark.util.Utils$.classForName(Utils.scala:229) 
    at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:695) 
    at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:187) 
    at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:212) 
    at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:126) 
    at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala) 
Command exiting with ret '101' 

答えて

0

クラスをパッケージの下に置き、それを実行してクラスにプレフィックスを付けます。

+0

私もそれを試しましたが、まだ動作しません – Srinivas

+0

問題は場所にあるようです。私は、提出された瓶がs3にあることに気づいた。私は瓶が地元のマシンになければならないと信じています。 jarをローカルファイルシステムに配置して実行しようとしましたか? – nkasturi

関連する問題