我有一個場景,我想將格式爲Array [Row]的數據幀的結果轉換爲RDD [Row]。我嘗試過使用並行化,但我不想使用它,因爲它需要將整個數據包含在生產框中不可行的單個系統中。如何將Array [Row]轉換爲RDD [Row]
val Bid = spark.sql("select Distinct DeviceId, ButtonName from stb").collect()
val bidrdd = sparkContext.parallelize(Bid)
我該如何做到這一點?我嘗試了這個鏈接中給出的方法(How to convert DataFrame to RDD in Scala?),但它對我無效。
val bidrdd1 = Bid.map(x => (x(0).toString, x(1).toString)).rdd
它給出了一個錯誤value rdd is not a member of Array[(String, String)]
謝謝Tzach,它工作。目前我正在處理測試數據,所以我使用了collect。最終的代碼將包含將結果保存到平面文件。 – ibh
使用'collect'進行測試是有用和適當的,但要確保將測試與實際代碼分開 - 'collect'返回一個完全不同的類型,不能像「collect」未被調用那樣使用。 –