0
我有一個豬腳本,我加載了一些數據,通過函數流來獲得結果。結果是包含名爲count
的字段的json對象列表。現在我想按照count
的降序對列表進行排序。豬:在沒有模式的文件中排序json對象
我在網上發現的所有文件說我可以使用ORDER BY
但爲此我需要知道別名的架構。現在,由於這是我在豬腳本中生成的別名,因此我不知道如何執行ORDER BY
。
因此,我將它存儲在一個臨時文件中,並再次用一個模式加載並進行排序。但我認爲這不是一個很好的做法。有人能告訴我如何在不使用臨時文件的情況下做到這一點嗎?
我的腳本現在的問題是:
DEFINE create_list `create_list.py` SHIP ('$STREAM_FILE_PATH_SYNTAXNET/create_list.py');
input_data = LOAD '$DATA_INPUT';
result1 = STREAM input_data THROUGH create_list;
result2 = GROUP result1 BY 1;
result3 = FOREACH result2 GENERATE FLATTEN(result1);
STORE result3 INTO '/tmp/summarize';
a = LOAD '/tmp/summarize' USING JsonLoader('count:int,parent_pos:chararray,parent:chararray,child_dep:chararray,parent_dep:chararray,child:chararray,child_pos:chararray');
x = ORDER a BY count DESC;
STORE x INTO '$DATA_OUTPUT' USING JsonStorage();
fs -rm -r /tmp/summarize
正如我所說的,我想直接存儲排序列表到$DATA_OUTPUT
而不是使用臨時文件。我怎麼做排序?
編輯:我試過x = ORDER result3 BY $0
,但工作失敗。
在我不知道的代碼是否將上述工作的問題讀取編輯後。 –