我是Spark,Hadoop&斯卡拉。我有一种情况需要从Scala / Spark的本地目录/文件中读取,我遇到了问题。我看到其他人遇到了同样的问题,但我没有看到解决方案。
我正在使用Spark 1.6.2
我的代码如下:
def main(arg: Array[String]): Unit = {
val conf = new SparkConf().setAppName("MyAppName").setMaster("local[*]")
val sc = new SparkContext(conf)
val sqlContext = new SQLContext(sc)
val resultDf = sqlContext.read.json("/opt/app/poc/myfile.json")
}
我收到以下错误:Exception in thread "main" java.io.IOException: No input paths specified in job
注意:我的应用已在/opt/app/spark
中安装并运行,我通过拨打/usr/bin/spark-submit --class com.mycom.TestMyApp /opt/app/spark/App.jar
来呼叫它。我无法将json文件移动到项目jar文件中 - 必须从本地目录中读取它。
我无法弄清楚我哪里出错了。请帮忙。
这是stacktrace的一部分:
>Exception in thread "main" java.io.IOException: No input paths specified in job
>> at org.apache.hadoop.mapred.FileInputFormat.listStatus(FileInputFormat.java:202)
>> at org.apache.hadoop.mapred.FileInputFormat.getSplits(FileInputFormat.java:315)
>> at org.apache.spark.rdd.HadoopRDD.getPartitions(HadoopRDD.scala:199)
>> at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:242)
>> at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:240)
>> at scala.Option.getOrElse(Option.scala:120)
>> at org.apache.spark.rdd.RDD.partitions(RDD.scala:240)
>> at org.apache.spark.rdd.MapPartitionsRDD.getPartitions(MapPartitionsRDD.scala:35)
>> ...