대량 원시 데이터의 사후 분석을 통해 이러한 데이터를 얻었다고 가정해 보겠습니다.
[(id,node,val)(id,node,val)...]
는 사용자 ID, 서버, 값의 순서로 구성된 튜플이며 서버에 따라 구분된 다음 Val을 기준으로 정렬됩니다. 크기를 선택한 다음 Excel에 쓰기를 선택합니다.
또는 [{"id":xxx,"node":xxx,"val":xxx},{"id":xxx,"node":xxx,"val":xxx}...]
만약 는 정렬로 정리할 수 있는 kvs 집합만 있는데, 노드 이름은 현재 알 수 없으며, 이러한 서버 이름은 매일 바뀔 수 있습니다. 이러한 데이터를 얻은 후 서버 이름에 따라 데이터를 어떻게 분리하고 정렬합니까?
여기서 가장 큰 문제는 노드 자체의 이름이 고정되어 있지 않다는 것입니다. 예를 들어 먼저 n개의 목록을 만들고 여기에 동일한 노드의 데이터를 넣었지만 몇 개의 목록을 만들어야 할지 알 수 없습니다. 그리고 나중에 처리된 데이터를 엑셀로 쓸 때 필연적으로 루프를 사용하게 됩니다.
사이클 내의 사이클이며, 데이터가 분류된 후에도, 정리된 후에도 새로운 데이터 그룹의 이름은 결정되지 않습니다. exec 명령을 사용해도 요구 사항을 충족할 수 없습니다
过去多啦不再A梦2017-06-12 09:24:19
으아아아
또한 실제로 모든 데이터를 id, node, val별로 csv 파일에 쓸 수 있습니다.
Linux의 awk, uniq, sort 및 기타 명령 도구를 통해 쉘 스크립트를 작성하는 것도 매우 빠릅니다
또한, 방대한 데이터가 얼마나 큰지, 그 규모가 어느 정도인지 명확하지 않습니다. 데이터의 양이 정말 크면 위 Python 코드의 메모리가 충분하지 않을 수도 있습니다. 혼자서
我想大声告诉你2017-06-12 09:24:19
귀하의 요구 사항을 올바르게 이해했다면 사전을 사용할 수 있습니다. 사전의 키는 노드의 이름이고 사전의 값은 항목 목록입니다.
으아아아그런 다음 키(서버 이름)에 따라 사전(즉, 데이터 목록)의 각 항목 값을 꺼내고, 각 항목의 특정 값에 따라 정렬하려면 람다를 추가하여 정렬합니다.