2017-07-26 4 views
1

をしようとしたとき、私は基本的なスカラ・スパーク例を実行しようとしています:スパーク・エラーローカルFSからJSONファイルを読むために

object LoadJsonWithSparkSQL{ 
    def main(args: Array[String]) { 
    val master = "local" 
    val inputFile = "/path/to/my/local/file"  
    val warehouseLocation = "/path/to/spark-warehouse" 

    val sparkSession = SparkSession.builder. 
     master(master) 
     .appName("LoadJsonWithSparkSQL") 
     .config("spark.sql.warehouse.dir", warehouseLocation) 
     .getOrCreate() 

    val input = sparkSession.read.json(inputFile) 
    input.printSchema() 
    sparkSession.stop() 

スパークセッションが作成されます。 jsonファイルを読み込もうとすると、次のエラーが表示されます。

Exception in thread "main" java.lang.NoSuchMethodError: org.apache.hadoop.fs.FileStatus.isDirectory()Z 
at org.apache.spark.sql.execution.datasources.ListingFileCatalog$$anonfun$1$$anonfun$apply$2.apply(ListingFileCatalog.scala:129) 
at org.apache.spark.sql.execution.datasources.ListingFileCatalog$$anonfun$1$$anonfun$apply$2.apply(ListingFileCatalog.scala:116) 
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244) 
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244) 
at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33) 
at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:108) 
at scala.collection.TraversableLike$class.map(TraversableLike.scala:244) 
at scala.collection.mutable.ArrayOps$ofRef.map(ArrayOps.scala:108) 
at org.apache.spark.sql.execution.datasources.ListingFileCatalog$$anonfun$1.apply(ListingFileCatalog.scala:116) 
at org.apache.spark.sql.execution.datasources.ListingFileCatalog$$anonfun$1.apply(ListingFileCatalog.scala:102) 
at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:251) 
at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:251) 
at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33) 
at scala.collection.mutable.WrappedArray.foreach(WrappedArray.scala:34) 
at scala.collection.TraversableLike$class.flatMap(TraversableLike.scala:251) 
at scala.collection.AbstractTraversable.flatMap(Traversable.scala:105) 
at org.apache.spark.sql.execution.datasources.ListingFileCatalog.listLeafFiles(ListingFileCatalog.scala:102) 
at org.apache.spark.sql.execution.datasources.ListingFileCatalog.refresh(ListingFileCatalog.scala:75) 
at org.apache.spark.sql.execution.datasources.ListingFileCatalog.<init>(ListingFileCatalog.scala:56) 
at org.apache.spark.sql.execution.datasources.DataSource.resolveRelation(DataSource.scala:379) 
at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:149) 
at org.apache.spark.sql.DataFrameReader.json(DataFrameReader.scala:287) 
at org.apache.spark.sql.DataFrameReader.json(DataFrameReader.scala:249) 
at LoadJsonWithSparkSQL$.main(LoadJsonWithSparkSQL.scala:50) 
at LoadJsonWithSparkSQL.main(LoadJsonWithSparkSQL.scala) 17/07/26 17:13:37 INFO spark.SparkContext: Invoking stop() from shutdown hook 

これを修正する方法はありますか?

私のセットアップは次のとおりです。

スパーク:2.0.0

スカラ:2.10

すべてのファイルは私の地元のFSにあります。

+1

あなたはあなたのパスの先頭にfile://? – dumitru

+0

うん。 "file:///"と一緒に試してみました。 –

+0

'file://'を前に置いてどうしたのですか? – jamborta

答えて

0

ここでは、2つのオプション sc.textFile( "file:///ファイルへのパス/")を使用できます。それがテキストファイルの場合。
それ以外の場合は、そのJsonファイルでデータフレームを試すことができます df = sqlContext.read.json( "file")
create dataframeで試してください。このDFは、データを簡単に調べることができます。

+0

私はval df = sparkSession.sqlContext.read.json(inputFile)を試しました。それでも同じエラーがあります。 –

関連する問題