toDF не является членом Seq, toDS не является членом Seq - PullRequest
0 голосов
/ 11 марта 2020

Я пытался преобразовать последовательность в набор данных или набор данных с помощью приведенного ниже кода. Кажется, это довольно просто, но я получаю исключение при этом. Не уверен, какую ошибку я совершил. Я пытался найти решение для аналогичная проблема и согласно этому я переместил свое определение класса за пределы основного, но все еще я получаю проблему. Ниже приведен код

package sparkWCExample.spWCExample
      import org.apache.log4j.Level
      import org.apache.spark.sql.{Dataset, SparkSession , DataFrame , Row , Encoders }
      import org.apache.spark.sql.functions._
      import org.apache.spark.SparkContext
      import org.apache.spark.SparkConf
      import org.apache.spark.sql.Row
      import org.apache.spark.sql.Dataset



      // Create the case classes for our domain
case class Department(id: String, name: String)
case class Person(name: String, age: Long)


object DatasetExample  {
             def  main(args: Array[String]){
          println("Start now")
          val conf = new SparkConf().setAppName("Spark Scala WordCount Example").setMaster("local[1]")
        val spark = SparkSession.builder().config(conf).appName("CsvExample").master("local").getOrCreate()
        val sqlContext = new org.apache.spark.sql.SQLContext(spark.sparkContext)
        import sqlContext.implicits._
        import spark.implicits._

//val df = spark.read.options(Map("inferSchema"->"true","delimiter"->",","header"->"true")).csv("C:\\Sankha\\Study\\data\\salary.csv")

// Create the Departments
val department1 = new Department("123456", "Computer Science")
val department2 = new Department("789012", "Mechanical Engineering")
val department3 = new Department("345678", "Theater and Drama")
val department4 = new Department("901234", "Indoor Recreation")

val caseClassDS = Seq(Person("Andy", 32)).toDS()
val df = Seq(department1,department2,department3,department4).toDF



        }
}

Я использую свечи 2.4.5 и scala 2.12 и приведенный выше код был написан в scala ide, а ниже - исключение

. toDF не является членом Seq [sparkWCExample.spWCExample.Department toDS не является членом Seq [sparkWCExample.spWCExample.Person

1 Ответ

0 голосов
/ 11 марта 2020
import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.sql.{DataFrame, Dataset, SparkSession}

// Create the case classes for our domain
case class Department(id: String, name: String)
case class Person(name: String, age: Long)

object DatasetExample {

  def main(args: Array[String]) {
    println("Start now")
    val conf = new SparkConf().setAppName("Spark Scala WordCount Example").setMaster("local[1]")
    val spark = SparkSession.builder().config(conf).appName("CsvExample").master("local").getOrCreate()
    val sc: SparkContext = spark.sparkContext
    import spark.implicits._

    //val df = spark.read.options(Map("inferSchema"->"true","delimiter"->",","header"->"true")).csv("C:\\Sankha\\Study\\data\\salary.csv")

    // Create the Departments
    val department1 = Department("123456", "Computer Science")
    val department2 = Department("789012", "Mechanical Engineering")
    val department3 = Department("345678", "Theater and Drama")
    val department4 = Department("901234", "Indoor Recreation")

    val caseClassDS: Dataset[Person] = Seq(Person("Andy", 32)).toDS()
    val df: DataFrame = Seq(department1, department2, department3, department4).toDF

  }
}

Вы также использовали устаревший контекст и инициализацию Spark, и у меня было много неиспользованных импортов, которые я очистил. Сам код хороший, единственная проблема была в контексте spark.

PS: Я предлагаю вам взглянуть на документацию spark для лучшего понимания.

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