是pyscriptingPyspark UDF條件定義返回一列接受數列作爲輸入
問題描述:有一個場景,其中有一個需要通過多個列作爲輸入,並返回一個列如下面輸出是3列
ABC
的我的輸入數據幀SSS
小號NS NS
小號NS小號
SS NS
NS小號NS
我的輸出必須是如下
ABCD
SSSS
小號NS NS NS
S NS SS
SS NS NS
NS小號NS NS
我試圖註冊一個UDF通過這些3列[A,B,C]作爲輸入,並返回d列作爲輸出這裏A,B, C,d是列名
我發現很難得到下面的輸出用於
def return_string(x):
if [x.a=='s' & x.b=='S' & x.c=='s']
return 'S'
else if[x.a=='s' & x.b=='NS' & x.c=='s']
return 'S'
else if[x.a=='s' & x.b=='S' & x.c=='NS']
return 'NS;
func= udf(returnstring,types.StringType())
任何人都可以請幫我完成這個邏輯的語法。
全都是三列重要?對於此示例輸出它似乎只依賴於C. –
[Pyspark:在UDF中傳遞多個列]的可能重複(https://stackoverflow.com/questions/42540169/pyspark-pass-multiple-columns-in-udf) –
是的,如果xa =='NS'&xb =='S'| x.c =='NS'返回'NS',但你提到的這個示例輸出是正確的,其他列可以單獨考慮 – user3292373