0

대안으로 오버로드 된 메서드 값 createDataFramescala.collection.immutable.Iterable [org.apache.spark.sql.Row] to DataFrame? 오류 : 나는 스파크 1.6.x 이상인 경우에 <code>DataFrame</code>로 변환하고자하는 좀 <code>sql.Row</code> 개체가

내 행과 같이 :

events: scala.collection.immutable.Iterable[org.apache.spark.sql.Row] = List([14183197,Browse,80161702,8702170626376335,59,527780275219,List(NavigationLevel, Session)], [14183197,Browse,80161356,8702171157207449,72,527780278061,List(StartPlay, Action, Session)]) 

인쇄 :

events.foreach(println) 
[14183197,Browse,80161702,8702170626376335,59,527780275219,List(NavigationLevel, Session)] 
[14183197,Browse,80161356,8702171157207449,72,527780278061,List(StartPlay, Action, Session)] 

그래서 데이터에 대한 스키마를 만들었습니다. 내가 만드는를 시도

val schema = StructType(Array(
    StructField("trackId", IntegerType, true), 
    StructField("location", StringType, true), 
    StructField("videoId", IntegerType, true), 
    StructField("id", StringType, true), 
    StructField("sequence", IntegerType, true), 
    StructField("time", StringType, true), 
    StructField("type", ArrayType(StringType), true) 
)) 

그리고 다음 DataFrame의 :

val df = sqlContext.createDataFrame(events, schema)

하지만 다음과 같은 오류가;

error: overloaded method value createDataFrame with alternatives: 
    (data: java.util.List[_],beanClass: Class[_])org.apache.spark.sql.DataFrame <and> 
    (rdd: org.apache.spark.api.java.JavaRDD[_],beanClass: Class[_])org.apache.spark.sql.DataFrame <and> 
    (rdd: org.apache.spark.rdd.RDD[_],beanClass: Class[_])org.apache.spark.sql.DataFrame <and> 
    (rows: java.util.List[org.apache.spark.sql.Row],schema: org.apache.spark.sql.types.StructType)org.apache.spark.sql.DataFrame <and> 
    (rowRDD: org.apache.spark.api.java.JavaRDD[org.apache.spark.sql.Row],schema: org.apache.spark.sql.types.StructType)org.apache.spark.sql.DataFrame <and> 
    (rowRDD: org.apache.spark.rdd.RDD[org.apache.spark.sql.Row],schema: org.apache.spark.sql.types.StructType)org.apache.spark.sql.DataFrame 
cannot be applied to (scala.collection.immutable.Iterable[org.apache.spark.sql.Row], org.apache.spark.sql.types.StructType) 

I하지 않도록 내가 이것을 얻을 왜 의 기본 데이터가 어떤 유형의 정보가 없기 때문에, 그것을 무엇입니까?

는 어떤 도움을 크게 parallelize

답변

0

당신은이를 감사 :

val sc: SparkContext = ??? 
val df = sqlContext.createDataFrame(sc.parallelize(events), schema) 
+0

덕분에, 그러나 나는 약간의 캐스팅 오류'java.lang.ClassCastException가 얻을 : scala.math.BigInt 자바에 캐스트 할 수 없습니다. lang.Integer', 타입을 선언하지 않은 이유는 모르겠습니다. – ukbaz

관련 문제