0
後編輯: 基於此article似乎Spark不能編輯和RDD或列。必須使用新類型創建一個新類型,並刪除舊類型。以下建議的for循環和.withColumn方法似乎是完成工作的最簡單方法。覆蓋Spark數據幀架構
原文出處: 有沒有簡單的方法(對於人和機器)將多列轉換爲不同的數據類型?
我試圖手動定義模式,然後使用此模式從實驗室文件加載數據並將其保存到另一個文件,但我得到「作業中止。」......每次寫入行時「任務失敗」在每個DF上。對我來說有點容易,對Spark很費力......並且它不起作用。
另一種選擇是使用:對我來說更
df = df.withColumn("new_col", df("old_col").cast(type)).drop("old_col").withColumnRenamed("new_col", "old_col")
一點的工作,因爲有近100列,如果星火在內存複製每一列,那麼這聽起來既優化。有更容易的方法嗎?
列不是全部相同的類型,所以我仍然必須使用元組列表。儘管如此,出於某種原因,我並不認爲你可以用「withColumn」:)覆蓋一個列,所以非常感謝你,它可以避免丟棄和重命名部分。 – UrVal
然後是的,我認爲'(名稱,類型)'對'foreach'將是你最好的選擇。 –