2017-07-13 48 views
1

我正在嘗試使用Dataframe作爲RDD。 使用地圖方法和提取元素時,「[」&「]」字符也正在提取。我怎樣才能避免這種情況?我的邏輯有錯誤嗎? 我在分享細節。使用Dataframe作爲RDD

dateframe名稱是奧運會

scala> olympics.first 
res1812: org.apache.spark.sql.Row = [Michael Phelps,23,United States,2008,8/24/2008,Swimming,8,0,0,8] 

數據幀通過使用地圖方法

scala> olympics.map(x => x.toString.split(",")).first 
res1814: Array[String] = Array([Michael Phelps, 23, United States, 2008, 8/24/2008, Swimming, 8, 0, 0, 8]) 

正如可以在上面的結果看到的RDD,字符 「[」, 「]」也正在被提取。

預期的結果是:

Array[String] = Array(Michael Phelps, 23, United States, 2008, 8/24/2008, Swimming, 8, 0, 0, 8) 

我不想從該行的第一個和最後一個字符被捕獲。 我試過使用子字符串,但它只提取第一個元素。

我該如何解決這個問題? 請幫助

回答

1

如果你正在寫的數據到輸出文件或數據庫,您可以從array做出stringstring沒有"[""]"如下

olympics.map(x => x.mkString(",")).first 

希望這有助於!

0

可以代替字符串作爲

olympics.map(x => x.toString.replace("[", "").replace("]", "").split(",")).first 

,或者你可以做

olympics.map(x => x.toSeq.map(_.toString).toArray).first 
+0

它的工作..謝謝 – Jayson

相關問題