2017-03-11 13 views
3

"value toDFはorg.apache.spark.rdd.RDDのメンバーではありません"というエラーのコードスニペットが添付されています。私はスカラ2.11.8とスパーク2.0.0を使用しています。 API toDF()のこの問題を解決するのに手伝ってもらえますか?toDFの問題、Value toDFはorg.apache.spark.rdd.RDDのメンバーではありません

import org.apache.spark.sql.SparkSession 
import org.apache.spark.sql.SQLContext 
import org.apache.spark.SparkConf 
import org.apache.spark.sql.{Row, SparkSession} 
import org.apache.spark.sql.functions._ 

object HHService { 
    case class Services(
    uhid:String, 
    locationid:String, 
    doctorid:String, 
    billdate:String, 
    servicename:String, 
    servicequantity:String, 
    starttime:String, 
    endtime:String, 
    servicetype:String, 
    servicecategory:String, 
    deptname:String 
    ) 

    def toService = (p: Seq[String]) => Services(p(0), p(1),p(2),p(3),p(4),p(5),p(6),p(7),p(8),p(9),p(10)) 

    def main(args: Array[String]){ 
     val warehouseLocation = "file:${system:user.dir}/spark-warehouse" 
     val spark = SparkSession 
      .builder 
      .appName(getClass.getSimpleName) 
      .config("spark.sql.warehouse.dir", warehouseLocation) 
     .enableHiveSupport() 
      .getOrCreate() 
     val sc = spark.sparkContext 

     val sqlContext = spark.sqlContext; 

     import spark.implicits._ 
     import sqlContext.implicits._ 

     val hospitalDataText = sc.textFile("D:/Books/bboks/spark/Intellipaat/Download/SparkHH/SparkHH/services.csv") 
     val header = hospitalDataText.first() 
     val hospitalData= hospitalDataText.filter(a => a!= header) 
     //val HData = hospitalData.map(_.split(",")).map(p=>Services(p(0), p(1),p(2),p(3),p(4),p(5),p(6),p(7),p(8),p(9),p(10))) 
     val HData = hospitalData.map(_.split(",")).map(toService(_)) 

     val hosService=HData.toDF() 
    } 

}

答えて

3

1]は以下のようにsqlContextを取得する必要があります。

val sqlContext = new org.apache.spark.sql.SQLContext(sc) 
import sqlContext.implicits._ 

これが私の問題を解決しました。先ほどのコードスニペットを使用してsqlcontextを取得します。 ヴァルsqlContext = spark.sqlContext (それは火花シェルで加工される。この方法)

2] 場合クラスメソッドの外である必要があります。これはまた、ほとんどのブログでも言及されています。

関連する問題