0
這是輸入火花數據幀。基於「典型」我需要這個數據幀分成多個子dataframes,如下Spark生成來自超級數據幀優化方法的子數據幀
val dsTotal = fr.toDF("Key","Code")
dsTotal.show()
--------------
|key | Code |
--------------
|200 | DS |
|300 | CP |
|400 | DS |
|76 | OR |
|45 | CP |
|34 | DS |
|33 | OR |
|200 | DS |
--------------
我已經使用過濾器選項反覆在同一個超級數據幀創建子dataframes。是否有其他更好的方法來產生子dataframes
val ds1 = dsTotal.filter(col("Code").equalTo("CP"))
ds1.show()
--------------
|key | Code |
--------------
|45 | CP |
|300 | CP |
--------------
val ds2 = dsTotal.filter(col("Code").equalTo("DS"))
ds2.show()
--------------
|key | Code |
--------------
|200 | DS |
|400 | DS |
|200 | DS |
|34 | DS |
--------------
val ds3 = dsTotal.filter(col("Code").equalTo("OR"))
ds3.show()
--------------
|key | Code |
--------------
|76 | OR |
|33 | OR |
--------------
接下來你打算怎樣處理你的數據框?如果您只需要保存,請在DataFrameWriter上使用'partitionBy'。有關詳細信息,請參閱https://stackoverflow.com/questions/42645836/split-dataset-based-on-column-values-in-spark。 –
我只是想分割一個數據幀到子數據框中,以便我可以在後續編碼中使用這些子數據框。 – raam