2016-08-11 3 views
1

spark 2.0.0을 사용하고 있습니다. 여기 내 코드는 다음과 같습니다.DataFrame/Dataset에 대한 논리 계획 Apache spark

import org.apache.spark.sql.DataFrame 
import org.apache.spark.sql.SparkSession 
import org.apache.spark.sql.catalyst.analysis.EliminateSubqueryAliases 
import org.apache.spark.sql.catalyst.plans.logical.LogicalPlan 

object WikiDataframe { 

    def getDataframe(sparkSession: SparkSession): DataFrame = { 

    val df = sparkSession.read.option("header", "true").option("inferSchema", "true").csv(FILE_LOCATION) 

    df.registerTempTable("pageviews_by_second") 

    df 
    } 

    def main(args: Array[String]) { 
    val sparkSession = SparkSession 
     .builder() 
     .appName("Spark SQL Example") 
     .master("local") 
     .getOrCreate() 

    val pageViewsDF = WikiDataframe.getDataframe(sparkSession) 

    val query: DataFrame = sparkSession.sql("select Date from (select * from pageviews_by_second) a") 

    var logicalQuery: LogicalPlan = query.queryExecution.logical 

    println("logicalQuery : " + logicalQuery); 

    import org.apache.spark.sql.catalyst.analysis.EliminateSubqueryAliases 

    println("Eliminating sub queries"); 

    logicalQuery = EliminateSubqueryAliases.apply(logicalQuery) 

    } 
} 

logicalQuery 실행이 멈췄습니다. 가능한 경우 dataframe 또는 dataset을 받고 싶습니다. 어떤 도움을

+0

등의 작업이 필요를 감상 할 수있다? 당신은'Dataset'을 얻고 싶습니다 ... 뭐라구? 'logicalQuery' 에서요? 실행 프로세스의 중간 단계도 아닙니다. 계속 진행하는 방법을 좀 더 알려주기 전에 자세히 설명해주십시오. –

답변

0

org.apache.spark.sql에서 클래스를 작성하고 불꽃 앱 문제가 무엇 다음

def apply(Sqlctx: SparkSession, Plan: LogicalPlan): DataFrame = { 
    Dataset.ofRows(Sqlctx, Plan) 
}