Выражение типа sql.DataFrame не соответствует ожидаемому типу Option [sql.DataFrame] - PullRequest
0 голосов
/ 15 октября 2018

У меня есть следующая функция в Scala:

  def getData(spark: SparkSession,
              indices: Option[String]): Option[DataFrame] = {

    indices match {
      case None => {
        println("Undefined field.")
        None
      }
      case Some(ind) => {
        val df = spark
          .read.format("org.elasticsearch.spark.sql")
          .load(ind)
        df
      }
    }
}

Однако я получаю ошибку компиляции:

Выражение типа sql.DataFrame не соответствует ожидаемому типу Option[sql.DataFrame]

Я пытался вернуть Option[df], но он не компилируется ни.

Ответы [ 2 ]

0 голосов
/ 15 октября 2018

Вы возвращаете неправильный тип:

  def getData(spark: SparkSession,
              indices: Option[String]): Option[DataFrame] = {

    indices match {
      case None => {
        println("Undefined field.")
        None
      }
      case Some(ind) => {
        val df = spark
          .read.format("org.elasticsearch.spark.sql")
          .load(ind)
        Some(df) // <- Here!!!
      }
    }
}

или более идиоматически

indicies.map{
  ind =>
    spark
      .read
      .format("org.elasticsearch.spark.sql")
      .load(ind)
}
0 голосов
/ 15 октября 2018

Оберните df в Some:

def getData(spark: SparkSession,
              indices: Option[String]): Option[DataFrame] = {

    indices match {
      case None => {
        println("Undefined field.")
        None
      }
      case Some(ind) => {
        val df = spark
          .read.format("org.elasticsearch.spark.sql")
          .load(ind)
        Some(df) // here
      }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...