2016-10-17 4 views
1

나는 그때 DataSet에 변환을 내 CSV 사용 DataFrame를로드하지만,이 라인에서이스칼라에서 스칼라를 사용하여 DataSet을 사용하는 방법은 무엇입니까?

여러 마커와 같은 쇼의 :
- 데이터 집합에 저장 유형에 대한 인코더를 찾을 수 없습니다.
spark.implicits._ 다른 유형을 직렬화하기위한 지원이 향후 릴리스에서 추가 될 예정입니다.
- 메서드에 대한 인수가 충분하지 않습니다. (암시 적 증거 $ 2 :
org.apache.spark.sql.Encoder) [org.apache.spark.sql.Dataset] [DataSet.spark.sql.Dataset] . 알 수없는 값 매개 변수 증명 $ 2

해결 방법?.

case class aaCSV(
    a: String, 
    b: String 
    ) 

object WorkShop { 

    def main(args: Array[String]) = { 
    val conf = new SparkConf() 
     .setAppName("readCSV") 
     .setMaster("local") 
    val sc = new SparkContext(conf) 
    val sqlContext = new SQLContext(sc) 
    val customSchema = StructType(Array(
     StructField("a", StringType, true), 
     StructField("b", StringType, true))) 

    val df = sqlContext.read.format("com.databricks.spark.csv").option("header", "true").schema(customSchema).load("/xx/vv/ss.csv") 
    df.printSchema() 
    df.show() 
    val googleDS = df.as[aaCSV] 
    googleDS.show() 

    } 

} 

지금 나는이 같은 주요 기능을 변경 - - 내 코드는

def main(args: Array[String]) = { 
    val conf = new SparkConf() 
     .setAppName("readCSV") 
     .setMaster("local") 
    val sc = new SparkContext(conf) 
    val sqlContext = new SQLContext(sc) 
import sqlContext.implicits._; 
    val sa = sqlContext.read.csv("/xx/vv/ss.csv").as[aaCSV] 
    sa.printSchema() 
    sa.show() 
} 

를하지만 오류가 발생합니다 - "주"org.apache.spark.sql.AnalysisException 스레드 예외 : 할 수 없습니다 주어진 입력 열을 'Adj_Close'해결 : [_c1, _c2, _c5, _c4, _c6, _c3, _c0]; line 1 pos 7. 어떻게해야합니까?

이제 스파크 스케줄러를 사용하여 주어진 시간 간격을 기준으로 내 방법을 실행합니다. 그러나이 링크 (https://spark.apache.org/docs/latest/job-scheduling.html#scheduling-within-an-application)를 참조합니다. 친절하게 도와주세요.

+1

"방법에 대한 충분한 인수"... 어떤 방법

아래 블로그는 다른 Dataframes 및 데이터 집합에 대한 예제가있다? 당신의 코드는 어디에 있습니까? –

+0

흠. 코드에 주석을 사용하지 마십시오. 질문을 편집하고 적절하게 형식을 지정하십시오. 감사합니다 –

+0

@Sarathkumar Vulchi : ds를 ds로 변환하기 전에이 줄'sqlContext.implicits._'를 추가 할 수 있습니까? – Shankar

답변

0

DFDS으로 변환하기 전에 아래의 가져 오기를 추가해보십시오.

sc.implicits._ 

또는 데이터 집합 작업에 대한 추가 정보를 원하시면

sqlContext.implicits._ 

+0

고마워요. 친구. val sa = sqlContext.read.csv ("/ home/kenla/Spark_Samples/google.csv"). [googleCSV] –

+0

같은 다른 접근 방식을 시도했습니다. val sa = sqlContext.read.csv (" /home/kenla/Spark_Samples/google.csv").as[googleCSV].하지만 "main"스레드에서 예외가 발생했습니다. org.apache.spark.sql.AnalysisException : 주어진 날짜 열을 'Date'로 변환 할 수 없습니다. [_c3 , _c4, _c0, _c1, _c5, _c6, _c2]; ". 친절하게 도와주세요. –