如果 df2 為空,我已嘗試使用此代碼向資料框添加一行,但我收到此錯誤并且我不明白原因。我沒有任何名為 value 的列。
執行緒“main”java.lang.IllegalArgumentException 中的例外:要求失敗:列數不匹配。舊列名 (1):值 新列名 (2):國家、代碼
var df1 = Seq.empty[(String,String)].toDF("country","code").
val df2 = spark.emptyDataFrame
if (df2.isEmpty) df1 = df1.union(Seq("GLOBAL" , "EMPTY").toDF("country","code"))
uj5u.com熱心網友回復:
資料幀,如資料集和 RDD,是不可變的。因此,您需要在向其附加一行時創建一個新的 Dataframe。Dataframeunion()方法用于組合相同結構或模式的兩個 DataFrame。如果模式不同,則回傳錯誤。
要尊重模式,您需要使用union方法 on df1。要使用您想要的行創建一個新的 DataFrame,您應該使用以下內容:
val df3 = df1.union(Seq("GLOBAL" , "EMPTY").toDF())
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/496943.html
上一篇:轉換為Scala代碼PEM到DER證書從GoogleKMS庫跟進
下一篇:Scala:單例物件與匿名類
