考慮下麵的輸入:
ID PrevID - - - - - - - - - - - - - - - - - - 33歲零272 33 317 272 318 317
我需要以某種方式得到以下結果:
結果- - - - - - - - - - 33/272 / 33 / / 33/272/317 / 33/272/317/318
我在SQL需要這樣做,如果真的不可能,那麼別的,和磚不支持遞歸CTE的所以我的思想,我有一個SQL小提琴,說明了recursivce CTE磚不工作:http://sqlfiddle.com/ ! 18/101df / 3/0
任何幫助都是感激,謝謝
嗨@Shazal戈麥斯,
我發現使用pyspark這個解決方案
從pyspark。sql從pyspark.sql導入函數作為F。從pyspark窗口導入窗口。sql從pyspark.sql進口行。類型導入* id = [“33”、“272”、“317”、“318”] df_ids =火花。createDataFrame([行(ID =我)我在ids中)顯示(df_ids。withColumn (PREVIOUS_ID, F.concat_ws (' / ', F.array_sort (F.collect_set (F.col (ID)) .over (Window.orderBy (F.col (ID) .cast(整數))).cast(數組<整數>)))))
讓我知道它是否滿足你的需要。
嗨@Shazal戈麥斯,
我發現使用pyspark這個解決方案
從pyspark。sql從pyspark.sql導入函數作為F。從pyspark窗口導入窗口。sql從pyspark.sql進口行。類型導入* id = [“33”、“272”、“317”、“318”] df_ids =火花。createDataFrame([行(ID =我)我在ids中)顯示(df_ids。withColumn (PREVIOUS_ID, F.concat_ws (' / ', F.array_sort (F.collect_set (F.col (ID)) .over (Window.orderBy (F.col (ID) .cast(整數))).cast(數組<整數>)))))
讓我知道它是否滿足你的需要。