私は袋をPythonに渡しており、Python udfからレコードを取得する予定です。私はOutputschemaで何か間違ったことをしていて、各列をTupleとして取得しているに違いありません。どんな助けでも大歓迎です。PigのPython UDFはレコードを返しません
豚コード:
REGISTER 'priority.py' using jython as callme
A = LOAD 'addr_input/addr.dat' USING PigStorage(',') AS (A : chararray, B :chararray , C: chararray , ID : chararray, ID_TYPE : chararray);
B = DISTINCT A;
Z= GROUP B BY (A,B,C);
O = FOREACH Z GENERATE callme.unique_list($1) ;
DUMP O;
Pythonのコード:
({(aa),(bb),(cc),(1),(zip)})
({(lll),(ccc),(ddd),(6),(city)})
({(lll),(ccc),(xxx),(7),(country)})
({(mmm),(nnn),(cc),(4),(zip)})
を---すべての列はタプルとして来ている:私は取得しています
@outputSchema('relationships:{t:(A : chararray, B :chararray , C: chararray , ID : chararray, ID_TYPE : chararray)}')
def unique_list(input):
my_list = list(input)
print(my_list)
last_list = []
zipcnt = -1
citicnt = -1
countycnt = -1
statecnt = -1
return_list_zip = []
return_list_city = []
return_list_county = []
return_list_state = []
return_list_country = []
for j in range(len(my_list)):
if(my_list[j][4]) == "zip":
zipcnt = len(my_list)
return_list_zip = list(my_list[j])
continue
elif (my_list[j][4] == 'city' and zipcnt == -1):
citicnt = len(my_list)
return_list_city = list(my_list[j])
continue
elif (my_list[j][4] == 'county' and zipcnt == -1 and citicnt == -1):
countycnt = len(my_list)
return_list_county = list(my_list[j])
continue
elif (my_list[j][4] == 'state'and zipcnt == -1 and citicnt == -1 and countycnt == -1):
statecnt = len(my_list)
return_list_state = list(my_list[j])
continue
elif (my_list[j][4] == 'country'and zipcnt == -1 and citicnt == -1 and countycnt == -1 and statecnt == -1):
return_list_country = list(my_list[j])
continue
if(zipcnt != -1):
return_list = return_list_zip
elif(citicnt != -1):
return_list = return_list_city
elif(countycnt != -1):
return_list = return_list_county
elif (statecnt != -1):
return_list = return_list_state
else:
return_list = return_list_country
return return_list
出力!
{aa,bb,cc,1,zip}
{lll,ccc,ddd,6,city}
あなたの助けがはるかに高く評価されています。私は期待してい
出力。
サンプル入力データを提供できますか? –
@VikasMadhusudana:サンプル入力:AA、BB、CC、1、 AA、BB、CC、2通り MMM、NNN、CC、3、郡 MMM、NNN、CC、4ファスナー、 MMMファスナー、NNN 、cc、5、状態 lll、ccc、ddd、6、都市 lll、ccc、xxx、7、国 – SanBan