У меня есть тестовый скрипт для чтения текстового файла, представленного в виде параметра, подобного приведенному ниже:
test.scala:
$ cat test.scala
import scala.io.Source
val filename = args(0)
for (line <- Source.fromFile(filename).getLines) {
println(line)
}
Я хочу прочитать текстовый файл ниже:
$ cat test.txt
test1
test2
test3
Мне нужно запустить scala в командной строке, как показано ниже:
spark-shell -i test.scala test.txt
Я ожидаю, что test.txt распознается как args(0)
, но я вижу вывод как:
: 26: ошибка: не найдена: значение args val filename = args (0)
Может кто-нибудь просветить меня, как правильно использовать это?Большое спасибо.
ОБНОВЛЕНИЕ:
cat test.scala
import scala.io.Source
val args = spark.sqlContext.getConf("spark.driver.args").split(",")
val filename = args(0)
for (line <- Source.fromFile(filename).getLines) {
println(line)
}
Результат теста: spark-shell -i test.scala --conf spark.driver.args="test.txt"
SQL context available as sqlContext. Loading test.scala... import
scala.io.Source <console>:26: error: not found: value spark
val args = spark.sqlContext.getConf("spark.driver.args").split(",")