Первый вопрос создания и исполнения банок - PullRequest
0 голосов
/ 17 марта 2020

Я новичок в мире программирования и последние пару месяцев начал работать над ноутбуками Databricks с Scala. Сейчас я пытаюсь с IntelliJ редактор и конвертировать в Jar. Я создал небольшой код в intelliJ, преобразовал его в Jar и загрузил в Databricks. Но у меня проблема при запуске функции. Нужна помощь по тому же.

Код:

enter image description here

База данных:

enter image description here

Может ли кто-нибудь помочь мне в этом же.

Спасибо Сатья

1 Ответ

1 голос
/ 17 марта 2020

Перенос комментариев к ответу для будущих посетителей вопроса

Вы определяете класс, поэтому getTargetDate является методом, а не функцией и требует экземпляра класс для доступа.

Вам нужно либо создать экземпляр

new firstjar().getTargetDate() 

, либо еще лучше использовать одноэлементный объект

object firstjar{
    def getTargetDate() = {
       ...
    }
}

Не связанный с вопросом, но мы не рекомендуется использовать var, ;, return в Scala.

Мутация, как правило, грязная, поэтому старайтесь избегать ее как можно больше. И возврат не делает то, что вы думаете, он делает в Scala, вот сообщение в блоге об этом

Вы можете написать этот код как:

object FirstJar{ //Your object names should be more informative as well
  def getTargetDate() : String = {
     val format = new SimpleDateFormat("yyyy-MM-dd")
     val calenderInstance = Calender.getInstance()
     val f = format.format(calenderInstance.getTime())

     calenderInstance.setTime(format.parse(f)) //This doesn't return anything so no need to allocate a value 
     calenderInstance.add(Calender.DAY_OF_MONTH, -612) //neither does this

     val newDate = format.format(calenderInstance.getTime())

     s"$newDate 00:00:00"
  }
}

Вы можете назвать это как

FirstJar.getTargetDate

Ура

...