我有一些代碼使用抽樣,sc.parallelize()和rdd.toDF()方法dataframe退出。代碼在普通筆記本工作(如果我運行筆記本工作)但是失敗如果我做同樣的事情在一個DLT管道。錯誤消息變化如何我試著火花上下文的訪問,但我通常得到的值錯誤抽樣是空的
我已經嚐試了幾種不同的方法可以訪問火花上下文DLT管道,但似乎沒有人工作。我也是新火花,我也許不是搜索正確的術語——這將是偉大的如果有人可以告訴我正確的方向!
我附上了兩dbc筆記本,第一個創建一些假數據,讀取它,並抽樣操作我想做的事情。第二個筆記本是DLT管道,它讀取的假數據,嚐試一些不同的方法來訪問火花上下文和抽樣操作。每個方法的錯誤消息給我指出。
謝謝你的幫助,我最終重寫代碼與火花udf,也許有更好的解決方案隻有Dataframe API但我找不到它。
總結我的問題:我試圖un-nest大json blob(假數據在我的第一連接筆記本模擬問題)。我有一個數據源,它包含很多嵌套的json,通常我可以使用使用pyspark.sql.functions.get_json_object()提取的關鍵我想要的值。不工作在這種情況下,雖然因為嵌套的鑰匙是隨機的,所以我需要一種方法是這樣的:
“file_key”: {“nested_blob”: {" rand_nested_id_1 ": {“k1”:“v1”、“k2”:“v2”},“rand_nested_id_2”: {“k1”:“v1”、“k2”:“v2”},“rand_nested_id_3”: {“k1”:“v1”、“k2”:“v2”}}}
並將其轉化為dataframe看起來像這樣:
file_key | rand_nested_id_1 | {“k1”:“v1”、“k2”:“v2”} file_key | rand_nested_id_2 | {“k1”:“v1”、“k2”:“v2”} file_key | rand_nested_id_3 | {“k1”:“v1”、“k2”:“v2”}
結合火花udf返回file_key和嵌套鍵,值對數組隨後爆炸函數一樣我想要的。解決方案。