嗨,夥計們,
我在流媒體數據移動從青銅銀。表我的青銅entity_name列,基於entity_name列我需要創建多個銀表。
我嚐試以下方法,但它是失敗與錯誤”“GroupedData”對象沒有屬性get_group”
示例代碼片段:
grouped_df = bronze_df.groupBy (“entity_name”)
entity_names =[行。PrimaryEntityName grouped_df行。gg ({“entity_name”:“第一”}).collect ())
在entity_names entity_name:
entity_df = grouped_df.get_group (entity_name)
我認為/過濾器條款可以做必要的但效率明智它不會是一個好的解決方案在我的觀點。有任何其他的方法這樣做?
TIA。
@Harun消除Basheer:
代碼的問題是groupBy操作返回一個GroupedData對象,沒有一個get_group方法。相反,你可以使用過濾方法來過濾bronze_df DataFrame為每個實體名稱和寫結果DataFrames分離銀表。
這裏有一個例子如何修改代碼實現:
從pyspark.sql。功能導入坳#組的青銅DataFrame entity_name grouped_df = bronze_df.groupBy (entity_name) #提取獨特的實體名稱entity_names =[行。entity_name grouped_df行。gg ({“entity_name”:“第一”}).collect()] #過濾器的青銅DataFrame每個實體名稱和寫一個單獨的銀表entity_name entity_names: entity_df = bronze_df.filter(坳(“entity_name”) = = entity_name) entity_df.write.format .mode(“δ”)(“追加”).save (f“/ mnt /銀/ {entity_name}”)