Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala java.lang.IllegalArgumentException:java.net.UnknownHostException:tmp_Scala_Apache Spark_Sbt - Fatal编程技术网

Scala java.lang.IllegalArgumentException:java.net.UnknownHostException:tmp

Scala java.lang.IllegalArgumentException:java.net.UnknownHostException:tmp,scala,apache-spark,sbt,Scala,Apache Spark,Sbt,我从事Spark scala应用程序的工作,并与sbt合作完成了一个项目,我的树冠是: projectFilms/src/main/scala/AppFilms 我在HDFS中有3个文件,这些目录是:HDFS/tmp/projetFilms/,当我通过这个命令行“sbt run”运行我的代码时,它生成了一个错误: java.lang.IllegalArgumentException: java.net.UnknownHostException: tmp 这是: [trace] Stack

我从事Spark scala应用程序的工作,并与sbt合作完成了一个项目,我的树冠是:
projectFilms/src/main/scala/AppFilms
我在HDFS中有3个文件,这些目录是:
HDFS/tmp/projetFilms/
,当我通过这个命令行“sbt run”运行我的代码时,它生成了一个错误:

java.lang.IllegalArgumentException: java.net.UnknownHostException: tmp
这是:

  [trace] Stack trace suppressed: run last compile:run for the full output.
 ERROR Utils: uncaught error in thread SparkListenerBus, stopping SparkContext
java.lang.InterruptedException
这是我的代码:

import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf
import org.apache.spark.rdd._   

object appFilms {

val conf = new SparkConf().setAppName("system of recommandation").setMaster("local[*]")
val sc = new SparkContext(conf)
def main(args: Array[String]) {

val files = sc.wholeTextFiles("hdfs://tmp/ProjetFilm/*.dat")
//val nbfiles = files.count
println("Hello my application!")
sc.stop()
}
}
我无法从hdfs读取文件,但当我写入

root@sandbox projectFilms# hadoop fs -cat /tmp/ProjetFilms/*
我如何从HDFS读取所有文件的内容,知道我总是使用相同的命令

请你回答我

使用:

val files = sc.wholeTextFiles("hdfs:///tmp/ProjetFilm/*.dat")

还有一个附加的/after
hdfs://
,它是一个协议名。您必须通过hdfs://协议转到
/tmp/…
,这就是URL需要额外/。如果不这样做,Spark将尝试访问主机
tmp
,而不是文件夹错误
IllegalArgumentException:java.net.UnknownHostException:tmp
,因为在
wholeTextFiles
值中,它将
tmp
作为主机名。将值替换为
hdfs:///tmp/ProjetFilm/*.dat

谢谢您的回答!我将HDFS文件的完整路径名写为:val files=sc.wholeTextFiles(“hdfs://sandbox.hortonworks.com:8020/tmp/ProjetFilm/*.dat“)