2016-06-08 58 views
1

我跑在我的IntelliJ IDE火花應用程序作爲Maven項目, 我試圖創建一個rowRDD並將其轉換爲數據幀並將其存儲在HDFS。不能解析符號分裂火花工作

SPARK版本:1.5.2 SCALA版本:2.10.4

我的代碼:

val rowRDD= dataframename.map(_.split("\t")).map(p => Row(p(0),p(1),p(2),p(3))) 

據報道價值分裂是不是我的包類和報告應用程序中的一員不採取任何參數。

有一些依賴性的問題,我需要了解它的幫助。

注:我與架構defenition爲rowRDD

感謝做了支持

回答

1

從火花數據框文檔:

map[R](f: (Row) ⇒ R)(implicit arg0: ClassTag[R]): RDD[R] 
"Returns a new RDD by applying a function to all rows of this DataFrame." 

所以,當你在DF打電話map,您正在映射對象,該對象沒有split方法。

請參閱DataFrame,Row文檔。

+0

感謝您的回覆,但在spark文檔中提到可以使用map.split方法。檢查此鏈接:http://spark.apache.org/docs/latest/sql-programming-guide.html#programmatically-specifying-the-schema – Mahadevan

+0

在這個示例中,他們呼籲''上people' map'這是一個'RDD [字符串]'。除非'dataframenamename'也是'RDD [String]',否則你將無法像調用'split'一樣。 –

+0

他們可以調用'split',因爲它們映射到具有'split'方法的'String's –