несоответствие ввода '$' ожиданию StringLiteral Inpath рядом с 'inpath' в операторе загрузки - PullRequest
0 голосов
/ 18 марта 2020

Я хочу передать один путь из команды spark submit при загрузке данных из одного файла в таблицу кустов. Я пытаюсь передать этот путь, используя приведенный ниже код, но он показывает несоответствие ввода '$', ожидая, что StringLiteral Inpath рядом с 'inpath' в операторе загрузки.

    obj hive_scala{
    def main(args:Array[String]){
    // creating sparksession
    val dbsession=HiveWareHouseSession.session(sparksession).build()
    dbsession.setDatabase("dbname")
    if(args.length<1){
    System.exit(1)
    }
    var a="load data inpath $args(0) into table tablename";
    val b=dbsession.executeUpdate(a)
    }
    }

, затем с помощью команды spark submit: spark-submit --class classname projectjar location (отсюда мне нужно загрузить данные в таблицу) кто-нибудь может подсказать, как мне пройти этот путь с помощью spark-submit и какой код нужно изменить в scala.

Ответы [ 2 ]

0 голосов
/ 18 марта 2020

Похоже, вам не хватает некоторых символов для использования s-интерполяции:

 obj hive_scala {
    def main(args:Array[String]){
   // creating sparksession
   val dbsession = HiveWareHouseSession.session(sparksession).build()
   dbsession.setDatabase("dbname")
    if(args.length < 1){
      System.exit(1)
    }
   var a = s"load data inpath ${args(0)} into table tablename";
   val b = dbsession.executeUpdate(a)
 }

}

0 голосов
/ 18 марта 2020

Измените строку на

var a=s"load data inpath ${args(0)} into table tablename";

Префикс 's' отмечает интерполяцию строки. {} должен использоваться для выражений

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...