我有三角洲住表,我試圖運行GroupBy,但得到一個錯誤:“RuntimeError:查詢函數必須返回一個火花或考拉DataFrame”。
這是我的代碼:
@dlt。表def groups_hierarchy (): df = dlt.read_stream (groups_hierarchy_vw)返回(df .select (“id”,“名字”,(“路徑”,“/”).alias (“groups_in_path”), posexplode(分裂(“路徑”,“/”)).alias (“pos”、“價值”)).drop .select (“val”) (“id”、“名稱”concat(點燃(“集團”)、“pos”) .alias (“group_name”), expr (“groups_in_path (pos)”) .alias (val)) .groupBy ([df。id, df.name])
編輯:
像下麵一樣簡單的事情就可以了(你會注意到我我現在讀一個常規表而不是流,隻是出於測試目的):
@dlt。表def groups_hierarchy():返回dlt.read (streaming_silver) .groupBy (" id ") .count ()
和它工作好當我使用select語句和轉換,但是絕對最後.groupBy()似乎將它轉換成一個非火花/考拉DataFrame
@dlt。表def groups_hierarchy():返回dlt.read (streaming_silver) .select (“id”,“名字”,(“路徑”,“/”).alias (“groups_in_path”), posexplode(分裂(“路徑”,“/”)).alias (“pos”、“價值”)).drop .select (“val”) (“id”、“名稱”concat(點燃(“集團”)、“pos”) .alias (“group_name”), expr (“groups_in_path (pos)”) .alias (val)) .groupBy (" id ")
不,沒有加入我的代碼。問題發生在最後一行,當試圖使用.groupBy。
這在閱讀非視圖時沒問題,但失敗就一個流。流groupBy沒有支持嗎?
你能請更新你的火花的版本。的使用情況下,tripwire火花版本同樣的錯誤在測試盒框固定。
請參考: